我有2个具有一个元素名称的xsd,例如userId
。我从这些xsd定义创建了jaxb类,并使用这些类作为ContextPaths创建了WebServiceTemplate
,但出现错误:
The element name {http://namespace.name}userId has more than one mapping.
我在一些StackOverflow问题和其他资源中遇到了这个问题,但是没有找到任何解决方案:( 解决此问题的方法之一似乎是“为每个模型创建单独的JAXBContext”,但到目前为止,我还没有找到实现此目的的方法。
我的WebServiceTemplate配置:
@Bean
public WebServiceTemplate webServiceTemplate() throws Exception {
SaajSoapMessageFactory messageFactory = new SaajSoapMessageFactory(MessageFactory.newInstance());
messageFactory.afterPropertiesSet();
WebServiceTemplate webServiceTemplate = new WebServiceTemplate(messageFactory);
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setPackagesToScan(JAXB_PACKAGES);
marshaller.afterPropertiesSet();
HttpsUrlConnectionMessageSender messageSender = new HttpsUrlConnectionMessageSender();
//adding some properties to messageSender
//...
webServiceTemplate.setMessageSender(messageSender);
webServiceTemplate.setMarshaller(marshaller);
webServiceTemplate.setUnmarshaller(marshaller);
webServiceTemplate.afterPropertiesSet();
return webServiceTemplate;
}