- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要使用 XStream 1.4.4 将一堆 XML 读入 Java 域模型。我使用 JAXB 从 XSD 生成域类,用看似合适的 @XSteeamAlias 替换了一些注释(尽管到目前为止似乎没有任何区别)。我还没有去掉所有的 JAXB 东西,因为我在这里有很多类,到目前为止,它似乎出问题还为时过早。
在带有文本内容的第二个 XML 标记处抛出错误。奇怪的是,这不是第一个。
这是我的错误:
com.thoughtworks.xstream.converters.ConversionException: dateFrom : dateFrom
---- Debugging information ----
message : dateFrom
cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : dateFrom
class : java.util.ArrayList
required-type : java.util.ArrayList
converter-type : com.thoughtworks.xstream.converters.collections.CollectionConverter
path : /requestedCompany/companyItself/contactDetails/address/dateFrom
line number : 7
class[1] : nl.foo.domain.ContactDetails
converter-type[1] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[2] : nl.foo.domain.YCompanyType
class[3] : nl.foo.domain.RequestedCompany
version : null
-------------------------------
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:56)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:55)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:79)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:74)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:45)
at com.thoughtworks.xstream.core.util.HierarchicalStreams.readClassType(HierarchicalStreams.java:29)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:70)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:79)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:72)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:66)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:355)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:306)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:355)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:306)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:355)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:306)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1058)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1042)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:913)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:904)
这是我要解析的 XML 的开头:
<?xml version="1.0" encoding="ISO-8859-1"?><requestedCompany xmlns="http://www.graydon.nl/XSellence/scorePlus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<companyItself graydonCompanyIdentificationNumber="891974008">
<bla>bla</bla>
<contactDetails>
<companyName>WONINGTEXTIEL JAMO --VOORBEELDRAPPORT--</companyName>
<address status="huidig" type="20">
<dateFrom>1995-8-12</dateFrom>
<street>
<streetName>HAARLEMMERSTRAAT</streetName>
<houseNumber>179</houseNumber>
</street>
ContactDetails.java 看起来像这样:
public class ContactDetails {
@XStreamAlias("companyName")
protected String companyName;
@XStreamAlias("tradeName")
protected List<TradeName> tradeName;
@XStreamAlias("address")
protected List<YAddress> address;
@XStreamAlias("telephoneNumber")
protected List<YTelephone> telephoneNumber;
@XStreamAlias("faxNumber")
protected List<YTelephone> faxNumber;
}
我不确定我是否需要所有这些别名。它们似乎没有帮助或伤害。
当我删除 dateFrom 标签时,在 Street 上失败。当我删除它时,它在下一个标签上失败,等等。有趣的是它在 companyName 或我自己添加的不受支持的“bla”标签上没有失败。
编辑: 问题似乎出在列表上。它始终是 List 中对象中的第一个元素失败。地址在列表中,因此地址中的所有字段都会导致错误。
最佳答案
为后代回答我自己的问题:确实是列表。在每个列表之前,我需要放置 @XStreamImplicit(itemFieldName ="address")
这使它能够正确处理列表。
关于java - XStream 1.4.4 中的 ConversionException/CannotResolveClassException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17526567/
我正在构建一个 Maven 项目来执行多个 Web 服务的性能测试,这遵循jmeter-maven-plugin . 但是我遇到了一个问题,基本上是 Maven 找不到 RandomCSVDataSe
这是我第一次尝试 XStream。但是当我尝试解析我的 xml 文件时,出现了这个异常: Exception in thread "main" com.thoughtworks.xstream.map
我需要使用 XStream 1.4.4 将一堆 XML 读入 Java 域模型。我使用 JAXB 从 XSD 生成域类,用看似合适的 @XSteeamAlias 替换了一些注释(尽管到目前为止似乎没有
我正在将 xml 解析为 java 模型。在将 xml 解析为 java 对象时,我得到了 com.thoughtworks.xstream.mapper.CannotResolveClassExce
我需要转换此 XML: 0 98 使用 XStream 到 Java HashMap: XStream xStream = new XStream(); xStream.alia
当我尝试通过 java 代码从 eclipse 运行 JMX 文件时,我收到如下错误代码和错误。 我尝试过添加插件管理器。 kg.apc jmeter-plugins-manage
我在 Kettle 下使用 XStream 将 XML 反序列化为 Java 对象,但它总是给我带来异常:nodecom.thoughtworks.xstream.mapper.CannotResol
我已经配置了 SpringBatch-Admin-Console 来启动和查看我们在应用程序中使用的作业。 当我从应用程序的控制台启 Action 业时,作业完成,并且我能够按预期在控制台中查看作业的
我是一名优秀的程序员,十分优秀!