문제

.NET 2.0 (물론 IIS)에서 구현 된 제 3 자 웹 서비스를 사용해야합니다.

자바 클라이언트를 만들어야합니다. 나는 wsdl2java를 사용하여 비누 스터브를 생성하고 있습니다.

원래의 Apache Axis 프로젝트가 이제 유지되지 않은 것으로 보이면서 서비스에서 일부 응답을 파싱하는 데 문제가 있었기 때문에 클라이언트를 Axis2의 최신 (1.5) 버전을 사용하도록 변환했습니다. 이제 .NET 서비스는 내 요청을 인식하지 못합니다.

나는 "청킹"을 끄는 데 도움이되었으며 (여기서 "Stub"은 wsdl2java에 의해 생성 된 유형의 mumblestub의 변수이며, 여기에 여러 줄의 코드 라인이 무엇인지 보여줍니다).

stub._getServiceClient().getOptions().setProperty( HTTPConstants.CHUNKED, Boolean.FALSE);

.. 따라서 적어도 서비스는 내 요청을 인식합니다 처럼 나쁜 것이지만 요청 : "HTTP/1.1 400 Bad Request"지금은 응답입니다 ("소개 / 요약 "페이지가 WSDL에 대한 링크를 제공하는 페이지와 반대).

Axis ( "1") 요청에는 다른 컨텐츠 유형 헤더 (Text/XML, vs application/soap-xml)가 있음을 알았으며, 실제로 문제인 경우이 요청 헤더를 변경하는 방법이 궁금합니다.

또는 다른 사람 이이 문제가 있습니까? 문제는 실제로 (블로그 엔진에 "요소 주입"처럼 보이기 때문에 비위장이 없어) ... XML 버전-"1.0"... "XML 메타 인트로 태그"가 요청의 시작 부분에 추가 되었습니까?

WS-Deathstar.

도움이 되었습니까?

해결책

다른 컨텐츠 유형 헤더를 언급 할 때 클라이언트가 SOAP 1.2 요청을 보내려고 시도하고 타사 앱은 SOAP 1.1 만 이해합니다.

Afaik Axis2가 기본적으로 SOAP 1.2를 사용하기 때문에 중고 비누 버전을 변경해보십시오.

stub._getServiceClient().getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top