1

別のプロセスにメッセージを送信するときに、XStream1.4.3を使用してJavaドキュメントとXMLドキュメント間を移動しています。ほとんどすべてが機能します。ただし、適切に逆シリアル化するための返信ドキュメントを1つ取得できないようです。返信は次のとおりです。

<AddToBatchResponse>
    <MerchantOrderNumber>1525675</MerchantOrderNumber>
    <MerchantOrderNumber>1525676</MerchantOrderNumber>
    <ResponseReasonCode>100</ResponseReasonCode>
    <AuthResponseType>S</AuthResponseType>
</AddToBatchResponse>

XStreamが2番目のMerchantOrderNumberに到達すると、「重複フィールドMerchantOrderNumber」というエラーが表示されます。別のデザインを試しましたが、うまくいきません。関連するJavaコードは次のとおりです。

クラスの呼び出しからのスニペット

xstream.alias("AddToBatchResponse", AddToBatchResponse.class);
xstream.alias("MerchantOrderNumber", OrderNumber.class);
xstream.addImplicitCollection(AddToBatchResponse.class, "orderNumbers");
response = (AddToBatchResponse)xstream.fromXML(responseXml);

AddToBatchResponse.java(ゲッターとセッターを除く)

public class AddToBatchResponse {
protected List<OrderNumber> orderNumbers;
protected String ResponseReasonCode; 
protected String AuthResponseType;  
    ...

OrderNumber.java

public class OrderNumber {
protected String MerchantOrderNumber;
...

誰かが私が間違っていることを教えてもらえますか?ありがとう。

4

1 に答える 1

0

まあ、答えはありません-それで私がしたことは次のとおりです:

正規表現+文字列操作を使用して、コード内の余分な要素を引き出して処理しました。エレガントではなく望ましくありませんが、機能します。誰かがこの質問に対する答えを見つけたら、共有してください。

于 2012-09-10T12:36:34.803 に答える