Точка с запятой в параметре вызова сервиса REST с Apache CXF 2.3 - PullRequest
1 голос
/ 18 июля 2011

Я пытаюсь передать параметр, который содержит точку с запятой (зарезервированный символ) в службе REST, но у меня проблема с Apache Tomcat

Службы REST, написанные с использованием Apache CXF 2.3

@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) {
...
}

Затем я запустил запрос http://localhost:8080/DevManager/services/rest/getCmBuildAreas/QLARIUS/QLARIUS%3AMAINLINE_JAVA_STR/ANT_JAVA_BUILD%3B8 и получил эту ошибку:

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: если вам нужна дополнительная информация, спросите.

1 Ответ

2 голосов
/ 19 июля 2011

Тот факт, что Apache CXF 2.3 не обрабатывает правильно закодированные точки с запятой, вызван BUG в этой версии. Это исправлено в версиях 2.4, 2.3.4.

...