簡體   English   中英

JAX-RS @Path嵌入式變量

[英]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

  • 項目名稱:項目名稱
  • / api:servlet映射
  • / v15 / tasks:路徑注釋

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM