別のプロセスにメッセージを送信するときに、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;
...
誰かが私が間違っていることを教えてもらえますか?ありがとう。