Axis 1.4를 사용하여 웹 서비스에 연결하고 있습니다. 오류 설명 및 HTTP 상태 코드 202 응답 SOAP 봉투로 응답하여이 서비스 신호 오류는 다음과 같습니다HTTP 상태가 202 일 때 축 1.4가 SOAP 봉투를 디코딩하지 않습니다 - 버그 또는 기능입니까?
테스트 응답은 WSDL에 설명되어<soap:Envelope>
<soap:Body>
<TestResponse>
<TestResult>wrong format</TestResult>
</TestResponse>
</soap:Body>
</soap:Envelope>
:에,
<s:element name="TestResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="TestResult" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
그래서 내 의견 모두 괜찮습니다. 문제는 Axis 생성 스텁에 해당 오류 메시지가 나타나지 않고 대신 null
을 수신한다는 것입니다. SOAP 봉투를 디코딩하는,
if ((returnCode > 199) && (returnCode < 300)) {
if (returnCode == 202) {
return inp;
}
// SOAP return is OK - so fall through
}
그것은 코드를 건너 뜁니다 : 나는 디버깅, 나는 HTTPSender
클래스 라인 (705)에 선을 발견했습니다. 그래서, 마침내, 내가 잘못한 요청을 보냈습니다. (사용자 암호가 만료 된 것과 같은 런타임이 될 수 있습니다.) 오류 설명을 수신합니다. 그러나 Axis를 사용하기 때문에 아무런 액세스가없고 매우 디버깅을하는 null
만 수신합니다. 하드 (내가 Wireshark를 사용하여 발견 한 게시 된 응답).
제 질문은 버그입니까? 기능입니까? 웹 서비스가 HTTP 상태 202 또는 표준을 잘못 사용하도록 허용 한 회사가 허용하고 있으며 Axis가 너무 원시적이어서 지원하지 못합니까? 기껏해야 나는 수동으로 통신을 코딩하는 것을 피하고 싶습니다. HttpClient
을 아파치 또는 비슷한 것으로부터 ....
그래서 propably 모두 오류가 있지만, 질문은, 어떻게해야합니까? Axis 소스를 적절한 해결책으로 수정하고 있습니까? –
축을 패치해야 할 수도 있습니다. https://issues.apache.org/jira/browse/AXIS-1845에서 해결되지 않은 1.x 지점에 대한 미해결 요청이있는 것 같습니다. – Perception