我正在开发一个使用 XMLBeans 自动生成 Axis2 代码的 Web 服务客户端。发送请求按预期工作,但我无法成功解析响应。问题是响应数据不包含在 Axis2 正在查找的元素中。Axis2 在一个SendAndCommitResponse
元素中查找结果,该元素又包含一个元素,该元素带有一个 href TransactionResult
。
作为参考,原始的 WSDL 在这里。
返回 SOAP Envelope 的结构是:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://secure2.e-xact.com/vplug-in/transaction/rpc-enc/" xmlns:types="http://secure2.e-xact.com/vplug-in/transaction/rpc-enc/encodedTypes">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<q1:SendAndCommitResponse xmlns:q1="http://secure2.e-xact.com/vplug-in/transaction/rpc-enc/Response">
<SendAndCommitResult href="#id1"/>
</q1:SendAndCommitResponse>
<types:TransactionResult xsi:type="types:TransactionResult" id="id1">
</types:TransactionResult>
</soap:Body>
</soap:Envelope>
我试图解析的结果将在TransactionResult
标记内,但 Axis2 正在寻找SendAndCommitResponse
.
我的问题是,有没有办法告诉 Axis2 客户端在解析结果时遵循结果数据的正确元素?如果没有,我可以手动修改生成的客户端代码直接查看TransactionResult
吗?