2013-12-03 3 views
0

Я написал очень простой пример, используя Джерси. Я загрузил последние файлы jar с сайта Джерси в папку lib в WEB-INF. Мой класс и web.xml ниже.Простой пример REST Jersey на Java не работает

Когда я предоставляю URL localhost:8080/SimpleJersey/rest/test, я получаю 404 error (not found).

Однако, когда я использую Maven, он работает. Я использую Eclipse Kepler, сервер Glassfish 4 и Java 7.

Что я делаю неправильно в версии, отличной от Maven?

Спасибо.

Класс:

package com.simplejersey; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 

@Path("/test") 
public class MyResources 
{ 

    @GET 
    @Produces("text/plain") 
    public String getIt() 
    { 
     return "Hello there!"; 
    } 
} 

web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> 


    <display-name>SimpleJersey</display-name> 

    <servlet> 
     <servlet-name>jersey-servlet</servlet-name> 
     <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 
     <init-param> 
      <param-name>com.sun.jersey.config.property.packages</param-name> 
      <param-value>com.simplejersey</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>jersey-servlet</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 

</web-app> 
+0

Я должен добавить, что у меня нет сообщений об ошибках в Eclipse. В браузере есть только ошибка 404. Возможно, это связано с зависимостями, поскольку это работает, когда я использую Maven. – user1552294

+0

Я решил это прочитать это сообщение: http: // stackoverflow.com/questions/17709039/jersey-rest-web-service-tomcat-eclipse-and-404s?rq=1 Проблема (цитируется из вышеприведенного сообщения): «Джерси 2.0 не распознает init-param с именем com .sun.jersey.config.property.packages (web.xml). Попробуйте изменить его на jersey.config.server.provider.packages ... » – user1552294

+0

Прочитайте это сообщение http://stackoverflow.com/questions/20784531/jersey-services-with-tomcat-and-eclipse, возможно, это может быть полезно для вас – jjmartinez

ответ

3

Я нашел решение в этом посте Михал Gajdoš: Jersey REST Web Service, Tomcat, Eclipse and 404's

Выпуск (цитирование из упомянутого выше поста) :

Джерси 2.0 не распознает init-param с именем com.sun.jersey.config.property.packages (web.xml). Попробуйте изменить его jersey.config.server.provider.packages, как описано в ServerProperties.PROVIDER_PACKAGES (ссылка).»

Будьте carefeul при копировании web.xml из веб-сайтов, которые показывают старые решения или версии (как и я). Джерси обновляется тоже ..