문제

나는 완전히 붙어 있고 당신의 도움이 필요합니다 ... 나는 SOAP 메시지 내에서 이진 파일 (base64 인코딩 된 JPG 이미지)을 보내는 서비스를 위해 jaxb 2.x가있는 웹 서비스 스터브를 만들었습니다. 모든 것이 잘 작동했으며 Eclipse RCP 앱을 제품으로 내보내려고 할 때까지 이미지를 수신하고 표시 할 수있었습니다.

Axis2를 '재건'하기 위해이 문제를 해결할 수 있었고 이제는 스텁 내의 이진 파일 부분의 구문 분석을 제외하고는 이제 모든 것이 다시 잘 작동합니다. 이제 예외 (예기치 않은 요소)가 발생합니다.

Axis2-JaxB 생성 스텁에 사용되는 독자 (OmstaxWrapper)가 이제 전체 Base64 텍스트가 아니라 첫 번째 100000 바이트 만 읽음을 자세히 살펴 보았습니다. 그런 다음 요소의 올바른 결말을 찾지 못하고 예외를 던졌습니다.

앞에서 언급했듯이 - 이것은 처음에 발생하지 않았으므로 매개 변수 나 옵션 일뿐입니다. 모든 도움이나 힌트에 미리 감사드립니다!

편집하다JAXB가 아니었고 JAXWS와 WSIMPORT를 사용하여 WSDL 파일의 스터브를 만듭니다 ...

도움이 되었습니까?

해결책

약간의 배경을 위해 OmstaxWrapper는 AXIS2가 SAAJ의 대체물로 사용하는 Axis2의 웹 서비스를위한 Axis2의 사용자 정의 스트리밍 유틸리티 인 Axiom의 일부입니다. Axis에 대한 나의 이전 경험이 지나가야 할 것이라면 버그가된다면 크게 놀라지 않을 것입니다.

비누로 큰 바이너리를 보내려면 현재이 기술에 가장 적합한 기술은 MTOM 인 것 같습니다 ( 여기 Axis2와 함께 사용하는 방법). 이것은 이진 표현을 더 잘 최적화 할 수 있으며 문제가 사라질 수 있습니다. 그러나 클라이언트와 서버는 모두 MTOM을 말할 수 있어야하므로 옵션이 아닐 수도 있습니다.

또는 Axis2가 공리를 사용하는 대신 표준 SAAJ API를 사용하도록 설득 할 수 있어야합니다. Saaj는 느리지 만 버그가 적어야합니다.

마지막 제안은 고객을 위해 Axis2를 포기하고 더 가벼운 것을 사용하는 것입니다. 스프링 -Ws 현재 원격 웹 서비스와 대화하기 위해 선택한 도구 인 아주 멋진 클라이언트 API를 제공합니다. 그것은 MTOM뿐만 아니라 Axiom과 Saaj를 지원하며, 왜 문제가 발생했는지 알아 내기가 매우 쉽습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top