我目前正在开发一个处理 SOAP Web 服务的 Java 应用程序。
问题在于我解析了 WSDL [Apache Axis 的Parser对象为我完成了它],然后我创建了调用。
当我尝试调用它时,我必须传递一个 Object[] 来分配参数 [取自 WSDL 的操作]。正常的操作很容易,但是当我有自定义数据类型时,我无法让它为我填写。我尝试传递 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 ()
}
});