Jersey 为JAX-RS定义重叠@Path值时出现问题

Jersey 为JAX-RS定义重叠@Path值时出现问题,jersey,jax-rs,Jersey,Jax Rs,我有两个资源类 Pc.java - @Path("/pc") Tag.java - @Path("/{entity:(pc|networks)?}/{id}/tags") 因此,第二个资源处理以“/tags”结尾的“/pc”或“/networks”URL分支 但问题是我在Tag.java中的方法都没有被调用。我认为这是因为Pc.java被配置为处理/Pc,所以所有调用都被重定向到该资源,而Tag.java没有被调用,所以我得到了一个404错误 我可以通过将/tag更改为父路径并在其下放置(pc

我有两个资源类

Pc.java - @Path("/pc")
Tag.java - @Path("/{entity:(pc|networks)?}/{id}/tags")
因此,第二个资源处理以“/tags”结尾的“/pc”或“/networks”URL分支

但问题是我在Tag.java中的方法都没有被调用。我认为这是因为Pc.java被配置为处理/Pc,所以所有调用都被重定向到该资源,而Tag.java没有被调用,所以我得到了一个404错误

  • 我可以通过将/tag更改为父路径并在其下放置(pc/网络)来处理此问题,但我不想这样做,因为它不适合我们项目中其他URL的样式
  • 我可以有两组方法-一组在Pc.java下处理'/Pc',另一组在Network.java下处理'/networks',但这似乎是在复制代码

  • 有什么想法吗?

    也许至少有一部分标签应该是Pc的一部分?

    你的意思是在Pc.java中有一些“/Pc../tags”子资源,其余的在Tag.java中…很抱歉没有得到你的答案。错过了你答案中的链接。如果我仔细阅读,我会得到答案的。谢谢是的,子资源定位器是一条路要走!因此,我定义了一个单独的资源来处理'/tags'-Tag.java…,在Pc.java和Network.java中,我只为'/tags'定义了一个子资源,它返回一个Tag实例…感谢这个链接!我接受了你的回答。