[英]JAX-RS @Path Embedded Variables
我正在使用最新的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 / tasks,我會得到一個404。如果我命中localhost:8080 / api / tasks,它就可以了!
我只是不明白我在做什么錯。 任何幫助,將不勝感激,謝謝!
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
效果很好
<servlet-mapping>
<servlet-name>JAX-RS Servlet</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
本地主機:8080 / projectname / api / v15 / tasks
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.