Java Apache CXF 2.3的REST服务调用参数中的分号

Java Apache CXF 2.3的REST服务调用参数中的分号,java,tomcat,rest,cxf,jax-rs,Java,Tomcat,Rest,Cxf,Jax Rs,我试图在REST服务中传递包含分号(保留符号)的参数,但Apache Tomcat有问题 使用ApacheCXF2.3编写的REST服务 @GET @Path("/getCmBuildAreas/{productName}/{projectName}/{buildConfiguration}") @Produces(MediaType.APPLICATION_JSON) public CmBuildAreas getCmBuildAreas(@PathParam("buildConfigurat

我试图在REST服务中传递包含分号(保留符号)的参数,但Apache Tomcat有问题

使用ApacheCXF2.3编写的REST服务

@GET
@Path("/getCmBuildAreas/{productName}/{projectName}/{buildConfiguration}")
@Produces(MediaType.APPLICATION_JSON)
public CmBuildAreas getCmBuildAreas(@PathParam("buildConfiguration") String buildConfiguration, @PathParam("productName") String productName, @PathParam("projectName") String projectName) {
...
}
然后我运行查询并收到以下错误:

Jul 18, 2011 1:57:53 PM org.apache.cxf.jaxrs.utils.JAXRSUtils findTargetMethod
WARNING: No operation matching request path /DevManager/services/rest/getCmBuildAreas/QLARIUS/QLARIUS%3AAMAINLINE_JAVA_STR/ANT_JAVA_BUILD%3B8 is found, HTTP Method : GET, ContentType : */*, Accept : image/jpeg,application/x-ms-application,image/gif,application/xaml+xml,image/pjpeg,application/x-ms-xbap,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword,*/*,.
Jul 18, 2011 1:57:53 PM org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper toResponse
WARNING: WebApplicationException has been caught : no cause is available

PS:如果您需要任何其他信息,请询问。

Apache CXF 2.3无法正确处理编码分号的事实是由于该版本中存在错误。它在2.4、2.3.4版中已修复。

如何处理
/getCmBuildConfigurations/{productName}/{projectName}
应该匹配
/getCmBuildAreas/QLARIUS/QLARIUS%3mainline\u JAVA\u STR/ANT\u JAVA\u BUILD%3B8
?我注意到您的URL有
getCmBuildAreas
,而您的
@Path
注释有
getCmBuildConfigurations
-这些是否匹配?复制粘贴时出现一些错误。。。修正了为什么你认为问题出在semilcolon身上?当您使用更简单的参数调用服务时,服务是否正常工作?是的,即使我在ANT_JAVA_BUILD%3B8参数中传递冒号(%3A),而不是%3B,或者在没有保留参数的情况下,它也正常工作cxf 3.1.6中出现故障…