Java Jersey@Path映射查询

Java Jersey@Path映射查询,java,rest,jersey,jackson,Java,Rest,Jersey,Jackson,我有一门运动衫课 @Path("/static1/static2") public class DoStuff { @POST @Path("/static3") @Consumes(MediaType.APPLICATION_XML) @Produces("application/xml") public Response validation(String inputXML){ 所以我的url是localhost/static1/static2/static3,我得到了200 我的目标是

我有一门运动衫课

@Path("/static1/static2")
public class DoStuff {

@POST
@Path("/static3")
@Consumes(MediaType.APPLICATION_XML)
@Produces("application/xml")
public Response validation(String inputXML){
所以我的url是
localhost/static1/static2/static3
,我得到了
200

我的目标是拥有一个

localhost/static1/{variable}/static2/static3
我试着用下面的方法修改我的类

@Path("/static1/{variable}/static2")
    public class DoStuff {

    @POST
    @Path("/static3")
    @Consumes(MediaType.APPLICATION_XML)
    @Produces("application/xml")
    public Response validation(String inputXML){

但是我一直得到一个
404
,我做错了什么

问题似乎在于最后一个路径段
static3.{format}
。请尝试以下操作:

@Path("/static1/{variable}/static2")
    public class DoStuff {

    @POST
    @Path("/{segment3:static3.*}")
    @Consumes(MediaType.APPLICATION_XML)
    @Produces("application/xml")
    public Response validation(@PathParam("variable") String variable,
                               @PathParam("segment3") String segment3, 
                               String inputXML) {
       ...............
    }

我通过添加路径参数解决了{variable}问题,但无法解决格式问题problem@Anrei是的,你的回答解决了问题。如果你也能解释一下为什么这能解决这个问题,那就太棒了。路径段默认包含除
/
之外的所有字符。当您编写
static3/{segment3}.suffix/
时,Jersey不清楚segment3+后缀应该是一个段(可能是一个bug,或者根据JAX-RS规范,它不是必须实现的)。