2013-05-13 2 views
0

나는 위의 예에서수없는

URI uri = new URI("http://localhost:8080/rest/{data}");

URI를 실행해야 할 코드의 다음 조각에서있다가, 축 --ADB 1.5 .1.jar - org.apache.axis2.databinding.types.URI

나는 axis2-adb-1.6.1.jar도 사용하여 지쳤다. "Path contains invalid character : {"라는 MalformedURIException이 발생합니다. 나는 내가 내 입력을 수정할 필요가없는 것을 특징으로 옵션을 찾고 있는데요, 그것은 그러나

URI uri = new URI("http://localhost:8080/rest/%7Bdata%7D");

일을 해결 방법을 사용하기 위해 URI를 수정할 수 있습니다. 또한, 왜 축 항아리가이 한계를 가지고 있는지 누구든지 대답 할 수 있습니까? 설명을 찾으려고했지만 아무 것도 찾을 수 없었습니다.

답변

0

URL에 중괄호를 추가하는 것이 유효한 시나리오가 아니라는 것을 몇 일 전에 발견했습니다. 즉 RFC 2732

모두 RFC 2396 및 RFC 2732으로 규정 의해서만

http://axis.apache.org/axis2/java/core/api/org/apache/axis2/databinding/types/URI.html 조는 URI 사양 파싱 RFC 2396에 기술 된 URI 구문에 따라 수행되는 적절한 인코딩 후에 첨가 및 수정 될 수있다 다음과 같습니다.

게이트웨이 및 기타 전송 에이전트는 때때로 이러한 문자를 수정하는 것으로 알려져 있거나 구분자로 이 사용되므로 제외됩니다.

unwise = "{"| "}"| "|" | "\"| "^"| "["| "]"| "`"

을 URI 내에서 올바르게 나타내려면 제외 된 문자에 해당하는 데이터를 이스케이프 처리해야합니다.