【发布时间】:2020-04-14 07:14:36
【问题描述】:
我正在尝试 XStreamMarshaller。但是当我尝试解析两个 xsd:complexType 的 xml 文件时,我收到了这个错误:
class[1] : com.mc.batch.mapping.authorization.PIECES_JOINTES
converter-type[1] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
XML:
<DOCUMENT>
<ARTICLES>
<ARTICLE>
<NUMERO_ARTICLE>1</NUMERO_ARTICLE>
</ARTICLE>
<ARTICLE>
<NUMERO_ARTICLE>2</NUMERO_ARTICLE>
</ARTICLE>
</ARTICLES>
<PIECES_JOINTES>
<PIECES_JOINTE>
<TYPE_DOCUMENT>PDF</TYPE_DOCUMENT>
</PIECES_JOINTE>
<PIECES_JOINTE>
<TYPE_DOCUMENT>WORD</TYPE_DOCUMENT>
</PIECES_JOINTE>
<PIECES_JOINTE>
<TYPE_DOCUMENT>XLS</TYPE_DOCUMENT>
</PIECES_JOINTE>
</PIECES_JOINTES>
</DOCUMENT>
代码:
@Bean
MessageConverter messageConverter() {
Map<String, Class<?>> aliases = new HashMap<>();
XStreamMarshaller marshallerAuthorization = new XStreamMarshaller();
aliases.put("DOCUMENT", DOCUMENT.class);
marshallerAuthorization.setAliases(aliases);
Map implicitArticle = Collections.singletonMap(ARTICLES.class, "ARTICLE");
Map implicitPiece = Collections.singletonMap(PIECES_JOINTES.class, "PIECES_JOINTE");
marshallerAuthorization.setImplicitCollections(implicitPiece);
marshallerAuthorization.setImplicitCollections(implicitArticle);
MarshallingMessageConverter messageConverterAuthorization = new MarshallingMessageConverter(marshallerAuthorization);
messageConverterAuthorization.setTargetType(MessageType.TEXT);
return messageConverterAuthorization;
}
但是如何使用两个setImplicitCollections来映射PIECES_JOINTES.class和ARTICLES.class
我该如何解决这个冲突?欢迎任何帮助。提前致谢。
【问题讨论】:
标签: spring spring-integration spring-batch xstream