kev*_*een 2 java xml soap nusoap
我正在从PHP NuSoap实现中检索数据,它正在返回如下数据:
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:getHashCodeAllTablesResponse xmlns:ns1="urn:getSchemaForRhythms">
<return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType=":[121]">
<item xsi:type="xsd:">
<md5Hash xsi:type="xsd:string">e294967afe9834bf8477252ac0c3686e</md5Hash>
<tableName xsi:type="xsd:string">SYSCONGLOMERATES</tableName>
<isView xsi:type="xsd:string">false</isView>
<viewDefinition xsi:type="xsd:string">null</viewDefinition>
</item>
Run Code Online (Sandbox Code Playgroud)
我认为这是问题所在: <return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType=":[121]">
当我将Axis2 soap客户端指向服务时,我收到此错误:
org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unsupported type http://schemas.xmlsoap.org/soap/encoding/ Array
这是我正在尝试做的一个非常简单的java示例:
public static void main(String[] args) {
// TODO code application logic here
try{
GetSchemaForRhythmsStub stub = new GetSchemaForRhythmsStub(null,"http://test.test.com/sqlSchemaService/schemaBuilder.php" );
GetSchemaForRhythmsStub.GetHashCodeAllTablesE response2= new GetSchemaForRhythmsStub.GetHashCodeAllTablesE();
stub.getHashCodeAllTables(response2);
}catch(Exception ex)
{
System.out.println(ex.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
我找不到任何与Array数据类型和Axis相关的文档.我错过了什么吗?
谢谢,
您缺少的是SOAP编码数组类型实际上是旧学校(即他们在XML Schema出现之前使用过的东西),而Axis2不喜欢它.您可以尝试将数据绑定从ADB(默认)切换到XMLBeans.如何执行此操作取决于您如何解析WSDL.以下是我发现的几个参考文献:
Axis2的wsdl2java在RPC /编码样式的Web服务上失败
通常,查找"soap encoded array axis2"以查找有关您正在执行的操作的信息.
| 归档时间: |
|
| 查看次数: |
6677 次 |
| 最近记录: |