現在、SOAP Web サービスを処理する Java アプリを開発しています。
問題は、WSDL を解析した後にあり [Apache Axis のParserオブジェクトが処理してくれます]、呼び出しを作成します。
それを呼び出そうとすると、[WSDL のアクションから取得した] パラメータを割り当てるために Object[] を渡さなければなりません。通常のアクションは簡単ですが、カスタム データ型があると、それを入力することができません。Object[]{ new Object { }} を渡そうとしましたが、代わりに最初のフィールドが割り当てられます。「< >」が「--lt --gt」に変更され、サーバーがそれを認識しないため、処理済みの状態で渡すことはできません。
これは WSDL のフラグメントです。
<s:element name="FERecuperaQTYRequest"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="argAuth" type="tns:FEAuthRequest" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="FEAuthRequest"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="Token" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="Sign" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="cuit" type="s:long" /> </s:sequence> </s:complexType>
そしてこれが厄介なJava Fragment
QTY = (String) call.invoke (
new Object[]{
new Object[]{
tokenConexion.getToken (),
tokenConexion.getSign (),
tokenConexion.getCUIT ()
}
});