2017-04-21 1 views
0

IBM WebSphere Application Server (WAS) V8.5.5.11에서 실행되는 웹 애플리케이션에는 JAX-WS 클라이언트가 있습니다 (외부 웹 서비스를 호출하는 JAX-WS 컴포넌트 내장).WebSphere Application Server 8.5에서 JAX-WS 클라이언트에 대한 청크 분할 전송 인코딩 사용 안 함

HTTP 본문이 32KB보다 큰 웹 서비스 호출의 경우 WAS는 청크 분할 전송 인코딩을 사용합니다. 불행히도 외부 웹 서비스는 청크 분할 전송 인코딩을 처리 할 수 ​​없으므로 오류가 발생합니다.

WAS JAX-WS 클라이언트 코드 내에서 청크 분할 전송 인코딩을 비활성화하려면 어떻게합니까?

답변

0

체크를 선언합니다 그러나 WAS "Administrative Console"을 통해이를 비활성화하는 방법을 찾았습니다.

기본적으로 "WSHTTPS 기본"정책 집합의 복사본을 만들고 "HTTP 전송"정책을 수정하여 "청크 분할 전송 인코딩 사용"상자의 선택을 취소해야합니다. 그런 다음이 사용자 지정 정책 집합을 서비스 클라이언트에 할당합니다.

자세한 설명은 당신이 정책 설정을 적용하고 청크하지 않도록 선택할 수 있습니다 https://www.ibm.com/support/knowledgecenter/en/SSEQTP_8.5.5/com.ibm.websphere.nd.doc/ae/twbs_wsspspthttp.html

0

는이 같은 HTTP 헤더를 추가 할 SOAP JAX-WS 핸들러를 작성하고 handleMessage 메서드를 재정의해야합니다

쉽게
public boolean handleMessage(SOAPMessageContext smc) { 
    ctx.put(HTTPConstants.CHUNKED, "false"); 
    return true; 
} 

, 그것은 핸들러와 간단한을위한 클래스를 만드는의 문제 XML 파일은 그것을 프로그래밍 방식 8.5.5.x. 내장 JAX-WS WAS의에 대한 청크 분할 전송 인코딩을 해제 할 수있는 방법을 찾을 수 없습니다 https://jax-ws.java.net/articles/handlers_introduction.htmlorhttp://www.mkyong.com/webservices/jax-ws/jax-ws-soap-handler-in-client-side/

+0

이미이 방법을 시도해 보았습니다. 그러나 IBM WebSphere App Server의 JAX-WS 구현에는 'HTTPConstants.CHUNKED'가 없으므로 상대방도 찾을 수 없습니다. – thebat

+0

WAS v8.5.5 JAX-WS 구현은 Axis2입니다. 그래서'ctx.put ("__ CHUNKED__", "false");'는 HTTPConstants.CHUNKED = "__ CHUNKED __"' – titou10

+0

으로 작동 할 수 있습니다.'ctx.put ("__CHUNKED__", "false");'이 속성이 실제로 설정되었는지 확인했지만 WAS는이를 무시하고 전송 인코딩에 영향을주지 않습니다. – thebat

0

에서 찾을 수 있습니다. enter image description here

관련 문제