Java 在REST中请求@pathParam时,URL在分号后被截断

Java 在REST中请求@pathParam时,URL在分号后被截断,java,rest,jersey,Java,Rest,Jersey,在javascript中,我对路径进行编码并附加到URL。在GET调用中,REST URL在分号后被截断 路径名:!#@$^&():,。[] encodeURI(路径名): %21%23%3B%40%24%5E%26%28%29%2B%7B%7D%3A%2C.%27%5B%5D URL+路径: ../reports/SMC-%21%23%3B%40%24%5E%26%28%29_%2B%7B%7D%3A%2C.%27%5B%5D/configs?=1482329220060 fqReportNa

在javascript中,我对路径进行编码并附加到URL。在GET调用中,REST URL在分号后被截断

路径名:!#@$^&():,。[]

encodeURI(路径名): %21%23%3B%40%24%5E%26%28%29%2B%7B%7D%3A%2C.%27%5B%5D

URL+路径: ../reports/SMC-%21%23%3B%40%24%5E%26%28%29_%2B%7B%7D%3A%2C.%27%5B%5D/configs?=1482329220060

fqReportName将在分号(;)后分段 fqReportName:#


有可能阻止这种转移吗?

问题是jersy正在考虑;作为矩阵参数表示。 看看这个答案:

编辑:

这对我起了作用:

@GET
@Path("s/{s: .*}")
@Produces("application/json")
public Response s(@PathParam("s") String s){
    return Response.ok(s).build();

}

您可能需要改进正则表达式,使其不包含“/”,因为在path参数之后有第二个path段。

问题在于jersy正在考虑;作为矩阵参数表示。 看看这个答案:

编辑:

这对我起了作用:

@GET
@Path("s/{s: .*}")
@Produces("application/json")
public Response s(@PathParam("s") String s){
    return Response.ok(s).build();

}

您可能需要改进正则表达式,使其不包含“/”,因为在路径参数之后有第二个路径段。

但我不希望使用分号分隔,我希望使用@pathParam中的路径。但我不希望使用分号分隔,我希望使用@pathParam中的路径。