【发布时间】:2015-08-26 19:11:38
【问题描述】:
我正在尝试从传入的 XML 字符串生成一个对象。这是传入的有效负载,在将其从字节数组转换为对象后显示为 java.string:
<?xml version="1.0" encoding="utf-8"?>
<EnumerationResults ContainerName="http://xxx.blob.core.windows.net/123/">
<Blobs>
<Blob>
<Name>stuff.csv</Name><Url>http://xxx.blob.core.windows.net/123/location.csv</Url><LastModified>Tue, 25 Aug 2015 18:19:58 GMT</LastModified><Etag>0x8D2AD79C8DFFFFF</Etag>
<Size>177</Size>
<ContentType>application/octet-stream</ContentType>
<ContentEncoding /><ContentLanguage />
</Blob>
</Blobs>
<NextMarker />
</EnumerationResults>"
我创建了一个类,我试图用它来映射上面的内容:
public class EnumerationResults implements java.io.Serializable{
static final long serialVersionUID = 1;
private List<Blob> Blobs;
private String NextMarker;
private String ContainerName;
public EnumerationResults(){}
public List<Blob> getBlobs() {
return Blobs;
}
public void setBlobs(List<Blob> Blobs) {
this.Blobs = Blobs;
}
public String getNextMarker(){
return NextMarker;
}
public void setNextMarker(String NextMarker){
this.NextMarker = NextMarker;
}
}
使用 Xml 到 Object 转换器或 XML 到 JAXB 转换器,但是得到了:
org.mule.api.transformer.TransformerMessagingException: 枚举结果 (com.thoughtworks.xstream.mapper.CannotResolveClassException)。信息 有效载荷的类型:字符串
有人能告诉我改变这种情况的最佳方法是什么吗? 我也尝试过对象到 JSON,然后尝试将 JSON 映射到 java 类,但映射器通过错误。
感谢您的任何意见。
【问题讨论】:
-
更新:看来真正的问题是,当数据通过来自 Azure 的 RestApi 调用传入并通过 Dom 到 Xml 转换器从 BufferInputStream 转换为 Xml 时,它的类型为“java.xml”。 lang.string”。我已经尝试过各种替代的初始转换器,它们都导致“java.lang.string”从那一刻开始转换到一个对象被阻止......它出现了。