Arhn - архитектура программирования

Проверка пути к ресурсу веб-службы

Я пишу несколько модульных тестов для веб-службы, написанной несколько лет назад. Корневой класс имеет такой путь:

@Path("v1/path/")
public class RootResource {
   ...
}

Методы внутри класса имеют соответствующий путь. Один рабочий путь:

@GET
@Path("orders/{order_num}.xml")
@Produces(MediaType.APPLICATION_XML)
public Response getXML() {
    ...
}

Это отлично работает на root_path/v1/path/orders/123123.xml.

Однако есть и другой метод:

@POST
@Path("orders/{order_numer}/status.xml")
@Consumes(MediaType.APPLICATION_XML)
@Produces(MediaType.APPLICATION_XML)
public Response getStatusXML() {
  Logger.info(CALLER, "orderStatusXML", "XML Request received");
 ...
}

Когда я пытаюсь получить доступ к этому в root_path/v1/path/orders/123423/status.xml, я получаю 404 в ответ. В логах отсутствует даже первая строчка с логгером.

Я использую Weblogic 12, и мы использовали REST API Джерси для этих веб-сервисов.

Я пробовал несколько вещей, чтобы убедиться, что путь, указанный в тестовом примере, правильный. Любые подсказки/идеи о том, как проверить правильный путь?


Ответы:


1

Нет причин для пути root_path/v1/path/orders/123423/status.xml выдавать ошибку 404, если что-то еще не действует на этот URL.

Что попробовать:

  • загляните в свой файл web.xml и посмотрите, какой шаблон URL обрабатывает Джерси. Этот конкретный URL может обрабатываться другим сервлетом;
  • снова загляните в web.xml и посмотрите, есть ли у вас какие-либо объявленные фильтры. Какие URL-адреса перехватывают фильтры и что фильтры делают с перехваченным запросом?
  • это может быть не так, но я все равно добавлю это ... это «404 - не найдено», которое вы возвращаете, или на самом деле возвращается «405 - метод не разрешен»? Если вы попытаетесь получить доступ к URL-адресу root_path/v1/path/orders/123423/status.xml с помощью GET, например, из браузера, вы получите 405, потому что ваш метод помечен @POST. Вы используете POST?

Моя ставка на фильтр!

10.05.2014
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..