이름이있는 Person과 같은 POJO를 작업 응답으로 직렬화하는 axis2 (Java)로 노출 된 SOAP 웹 서비스가 있습니다. 또한, 응답에 이진 첨부 파일을 넣기 위해 직렬화 된 DataHandler를 사용하는 작업이 있습니다.wsdl2cpp 클라이언트 측에서 MTOM 첨부 파일이 포함 된 wso2 cpp 코드 생성
wso2 wsfcpp에서 제공하는 wsdl2cpp를 사용하여 C++에서 클라이언트 측 코드를 생성했습니다. getPerson (personId) 조치가 정상적으로 작동하고 예상대로 결과가 나옵니다. 그러나 생성 된 코드가 제대로 작동하지 않는 것처럼 보이지만 getFile (someId) 액션은 성공적입니다.
enableMTOM = true로 설정된 서비스는 axis2.xml 및 클라이언트에서 설정됩니다. 나는 Options.setEnableMTOM (true)을 추가하여 클라이언트 측의 주 (main)에서 확실하게 보냈다.
나는이 문제가 getFile (someId) 응답의 봉투가 유효하기 때문에 wsdl에서 생성 된 코드라고 생각한다. (나는 axis2c API를 사용하여 수동으로 테스트했고 예상대로 파일을 검색 할 수있다) .
WSDL2CPP -uri MyService.xml -g -d adb -u -f
: 여기
<xs:element name="getFileResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:base64Binary"/>
</xs:sequence>
</xs:complexType>
</xs:element>
클라이언트 코드를 생성하는 데 사용되는 커맨드 라인 : 여기
는 응답 (축 2 자바로부터 생성된다)은 WSDL에 포함 된 스키마이며 다음은 서비스에서받은 응답입니다.
<ns:getFileResponse xmlns:ns="http://services.myplace.com">
<ns:return>
<xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:[email protected]"></xop:Include>
</ns:return>
</ns:getFileResponse>
wsdl 또는 wsfcpp에 의해 구현되지 않은 기능 (MTOM 클라이언트 코드 생성 기능이있는 비누)입니까?
미리 감사드립니다.