我正在使用最新的Jax-RS + Glassfish版本,并且我一直在尝试对我的API进行版本控制。由于某些原因,如果我在@Path根资源类中包含嵌入变量,它甚至不会考虑这些变量。
@Path("/v{versionNum}/tasks")
public class Tasks {
@SuppressWarnings("unused")
@Context
private UriInfo context;
}我的上下文根是/api
我的web.xml包括:
<servlet>
<description>JAX-RS Tools Generated - Do not modify</description>
<servlet-name>JAX-RS Servlet</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JAX-RS Servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>现在,如果我尝试访问localhost:8080/api/v1/task,我会得到一个404。如果我点击localhost:8080/api/task,它就可以工作了!
我只是不明白我到底做错了什么。任何帮助都将不胜感激,谢谢!
发布于 2012-09-06 04:00:50
sun-web.xml
<sun-web-app>
<context-root>/api</context-root>
</sun-web-app> web.xml
...
<servlet>
<servlet-name>ServletAdaptor</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletAdaptor</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
... HelloWorldService.java
@Path("/v{version}/tasks") 在GlassFish上部署
http://localhost:8080/api/v1/tasks -运行良好
发布于 2012-09-06 04:07:02
<servlet-mapping>
<servlet-name>JAX-RS Servlet</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>本地主机:8080/projectname/api/v15/tasks
路径注释项目名称:项目名称
https://stackoverflow.com/questions/12288188
复制相似问题