我收到以下設置的XStream錯誤。我一定是瘋了。怎麼了?XStream類無法解析
請求類
@XStreamAlias("RequestTO")
public class RequestTO {
@XStreamImplicit
private List<SkuMerchTO> skuNumbers;
...
}
嵌套對象類
@XStreamAlias("skuMerch")
public class SkuMerchTO {
@XStreamAlias("skuNumber")
@XStreamAsAttribute
private Integer skuNumber;
@XStreamAlias("dept")
@XStreamAsAttribute
private Short department;
@XStreamAlias("class")
@XStreamAsAttribute
private Short cls;
@XStreamAlias("subClass")
@XStreamAsAttribute
private Short subClass;
...
}
XStream的代碼的XML解碼爲一個對象:
XStream stream = new XStream();
stream.processAnnotations(SkuMerchTO.class);
stream.processAnnotations(RequestTO.class);
RequestTO request = (RequestTO)stream.fromXML(requestXml);
XML輸入字符串:
<RequestTO>
<skuMerch skuNumber="123456" dept="1" class="2" subClass="3"/>
<skuMerch skuNumber="234567" dept="4" class="5" subClass="6"/>
</RequestTO>
錯誤在堆棧跟蹤:
----調試信息----
消息:2:2
原因的異常:com.thoughtworks.xstream.mapper.CannotResolveClassException
原因的消息:2:2
類:[...] RequestTO
需要型:[...] SkuMerchTO
路徑:/ RequestTO/skuNumberList/skuMerch
行號:3
.--------- ----------------------
com.thoughtworks.xstream.converters.ConversionException:2:2:2:2
----調試信息----
消息:2:2
原因的異常:com.thoughtworks.xstream.mapper .CannotResolveClassException
原因的消息:2:2
類:[...] RequestTO
需要型:[..] SkuMerchTO
路徑:/ RequestTO/skuNumberList/skuMerch
行號:3
.-------------------------------
如果我創建對象,toxml用於做我得到這個:
<RequestTO>
<skuMerch skuNumber="0" dept="1" class="2" subClass="2"/>
<skuMerch skuNumber="1" dept="1" class="2" subClass="2"/>
<skuMerch skuNumber="2" dept="1" class="2" subClass="2"/>
</RequestTO>
編輯:熱鬧的事情是,如果做到這一點:
stream.fromXML(stream.toXML(object));
它仍然無法在從XML的一部分!
我不明白輸出的XML如果你有別名'RequestTo'到'Request' ... – mre
我的壞註釋,這是一個錯字。別名是「RequestTO」 – pclem12
我輸入驗證碼(幾乎)直接,或從使用的XStream 1.4.2 XML沒有遇到任何問題。你正在使用哪個版本?不過,我確實爲類創建了一個包。 – cmonkey