Java JAX-RS:服务资源顺序

Java JAX-RS:服务资源顺序,java,rest,jax-rs,Java,Rest,Jax Rs,当前状态: 1.在my web.xml中: <servlet-mapping> <servlet-name>javax.ws.rs.core.Application</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> 问题。有没有办法将所有请求重定向到子资源和资源1的“路径”?在目前的情况下,应用服务器(在我的例子中是

当前状态: 1.在my web.xml中:

  <servlet-mapping>
   <servlet-name>javax.ws.rs.core.Application</servlet-name>
   <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>
问题。有没有办法将所有请求重定向到子资源和资源1的“路径”?在目前的情况下,应用服务器(在我的例子中是JBoss)似乎自行决定使用哪种资源,而且并不总是相同的


谢谢。

我选择的解决方案是使用不同的@Path。子资源现在有了一个更强的路径,通过使用更多的文字字符:

@Path("path")
public class Resource1 {
  //methods annotated with @Path
}

@Path("/path")//NOTE that the leading slash makes the difference
public class SubResource extends Resource1 {
  //same methods annotated with @Path (are inherited, not overridden)
}

更多关于JAX-RS中的“选择算法”的信息。

两个类上的@Path(“Path”)表示映射到同一条路径上?听起来像是一个架构问题。URI中这两个资源之间必须有区别。你至少应该想知道为什么你必须实现你的方法两次。@SatelliteSD,我的解释是错误的:这些方法只是继承的,没有任何东西是重新实现的。谢谢,我更正了问题/Code@dcernahoschi,是的,它们被映射到“相同路径”。如果您想知道我在哪里需要它:库中有一个负责某些请求的资源,但在我的应用程序中,我需要相同的代码,但有一些额外的请求。
@Path("path")
public class Resource1 {
  //methods annotated with @Path
}

@Path("/path")//NOTE that the leading slash makes the difference
public class SubResource extends Resource1 {
  //same methods annotated with @Path (are inherited, not overridden)
}