Я пытаюсь настроить службы отдыха Джерси для моего веб-приложения Java.Проблема, с которой я сталкиваюсь, заключается в том, что я могу получить требуемый ответ только по URL-адресу корневых сервисов.Любой другой URL, который я пытался установить, возвращает HTTP 404. Not Found.
Работает следующая конфигурация:
package cz.mono.wb.rest
@Path("/")
public class UserService
{
@GET
@Produces(MediaType.TEXT_PLAIN)
public String respondAsReady() {
return "Web service is ready!";
}
}
Когда я обращаюсь к серверу URL: port / contextRoot / rest / in browse,он возвращает правильный ответ, но когда я пытаюсь установить аннотацию @Path, например, так:
package cz.mono.wb.rest
@Path("/user")
public class UserService
{
@GET
@Produces(MediaType.TEXT_PLAIN)
public String respondAsReady() {
return "Web service is ready!";
}
}
и пытаюсь получить доступ к URL
server:port/contextRoot/rest/user/
или
server:port/contextRoot/rest/user
возвращается 404.
Конфигурация Джерси выглядит следующим образом: web.xml
<servlet>
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>
com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>cz.mono.wb.rest</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
pom.xml
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.19</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>1.19</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.19</version>
</dependency>