파트너가 웹 서비스 용 WSDL을 받았습니다. 필자는 웹 서비스에 익숙하지 않기 때문에 WSDL에 대해 회의적입니다. 한 가지 특별한 방법으로 우리는 정보를 얻을 수 있지만 한번만 사용할 수 있습니다. (또는 불이익을 당할 수도 있습니다.) 문제는 그것이 SOAP 응답 안에 "원시 XML"로 반환된다는 것입니다. 돌려 보내 져야하고 어떻게 다루어야하며 그것을 올바르게 보관해야합니다. 에 의해 반환 된 객체의 클래스가 될 것입니다 무엇을웹 서비스 메서드 결과에 대한 클래스는 무엇입니까?
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"methodResult"
})
@XmlRootElement(name = "MethodResponse")
public class MethodResponse {
@XmlElement(name = "MethodResult")
protected MethodResponse.MethodResult methodResult;
public MethodResponse.MethodResult getMethodResult() {
return methodResult;
}
public void setMethodResult(MethodResponse.MethodResult value) {
this.methodResult = value;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"content"
})
public static class MethodResult {
@XmlMixed
@XmlAnyElement(lax = true)
protected List<Object> content;
public List<Object> getContent() {
if (content == null) {
content = new ArrayList<Object>();
}
return this.content;
}
}
}
그래서 질문은 :은 다음 클래스를 생성
<s:element name="MethodResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="MethodResult">
<s:complexType mixed="true">
<s:sequence>
<s:any />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
wsimport의 :
는 WSDL의 관련 부분이있다 getContent()? 제공 한 샘플 C# 샘플에는 MethodResponse 또는 MethodResult가 없지만 반환 유형은 XmlNode입니다.
참고 : wsimport로 코드를 생성했지만 응용 프로그램이 Axis2를 사용합니다. 사용 가능한 다른 메소드는 적절한 객체를 반환합니다. 미리
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Could not deserialize Soap message
감사 :
간단한 시험 (샘플 모노 서버에서 실행되는) 클라이언트 측의 예외를 생성.
며칠 전 객체가 무엇인지 알아 냈습니다. 각 객체는 org.w3c.dom.Element 인 List