2016-08-14 1 views
0

Я настроил приложение REST, используя Джерси в затмении.REST API возвращаются 404 НЕ НАЙДЕНО, когда путь настроен в web.xml

Я не могу отправлять запросы REST, когда путь в web.xml настроен как /*, но когда я меняю его на /rest/*, я получаю ошибку 404 NOT FOUND. Исключений на сервере нет.

Файл web.xml является как показано ниже:

<servlet> 
    <servlet-name>Jersey Web Application</servlet-name> 
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>jersey.config.server.provider.packages</param-name> 
     <param-value>com.app.user</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Jersey Web Application</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
</servlet-mapping> 
<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
</welcome-file-list> 

Вот как я объявил путь в Java файл

@Path("/rest/products") 
    public class Product { 

Я получаю 404 ошибку, когда я доступ к пути/отдыху/продуктам на URL-адресе сервера.

Что мне не хватает?

Помощь очень ценится!

ответ

1

По мере того как вы набрали ваше веб-приложение на Джерси до /rest/*, все заявки должны иметь /rest на своем пути. Вы сопоставили свой класс Product с /rest/products, поэтому весь URL-адрес должен быть http://localhost:port/contextRoot/rest/rest/products. Если вы не хотите отдыхать два раза в URL-адресе, просто сопоставьте класс Product с номером /products.

0

Вы отобразили свой сервлет «/ отдыха/*» URL т.е. всякий раз, когда есть запрос с URL из ......./отдых/* ваш сервлет ServletContainer будет называться, чтобы справиться с этим.

в вашем файле java @Path ("/ rest/products") упоминается.

Вы получаете эту ошибку 404 из-за косой черты в пути, указанном в @Path. Это происходит потому, что когда вы даете путь, начинающийся с косой черты, он воспринимает его как абсолютный путь, а не относительный.

так что ваш окончательный URL не будет в конечном итоге, как /MyProject/отдыха/Товары, но вместо этого будет выглядеть /отдых/продукты которых он не может найти.

Отсюда ошибка.

Смежные вопросы