0

XMLBeansを使用して自動生成されたAxis2コードを使用してWebサービスクライアントで作業しています。リクエストの送信は期待どおりに機能しますが、レスポンスを正常に解析できません。問題は、応答データがAxis2が探している要素に含まれていないことです。Axis2は要素内の結果を探しています。要素には、要素SendAndCommitResponseへのhrefを持つ単一の要素が含まれていTransactionResultます。

参考までに、元のWSDLはここにあります。

返されるSOAPエンベロープの構造は次のとおりです。

<?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

私の質問は、結果を解析するときに、結果データの正しい要素へのhrefに従うようにAxis2クライアントに指示する方法はありますか?そうでない場合は、生成されたクライアントコードを手動で変更して、TransactionResult直接確認できますか?

4

1 に答える 1

2

Web サービスは Axis1 で作成されている可能性があります。Axis1 を使用してクライアントを生成できます。同じ種類の問題があり、Axis1 を使用して修正されました

于 2012-11-13T15:03:43.380 に答える