0

我正在开发一个使用 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吗?

4

1 回答 1

2

您的 Web 服务可能是在 Axis1 上编写的。您可以使用 Axis1 来生成您的客户端。我遇到了同样的问题并使用 Axis1 得到了纠正

于 2012-11-13T15:03:43.380 回答