Использование Spring-WS getWebServiceTemplate(). MarshalSendAndReceive Как указать Jaxb2Marshaller для использования Eclipse Moxy Jaxb Реализация
Мне нужно маршалировать объект, используя Eclipse Moxy с Spring-W. Я работаю над проектом весенней загрузки с spring-ws. Я включил jar moxy и все файлы jaxb.properties во все каталоги моделей.
Как заставить Spring-WS использовать moxy-реализацию jaxb?
Конфигурация заказа
@Configuration
public class OrderConfiguration {
@Bean
public Jaxb2Marshaller marshaller() throws Exception {
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setLazyInit(true);
marshaller.setContextPaths("OMITTED.xcbl.ordermanagement");
return marshaller;
}
@Bean
public OrderClient orderClient(Jaxb2Marshaller marshaller) throws Exception {
OrderClient client = new OrderClient();
client.setMarshaller(marshaller);
client.setUnmarshaller(marshaller);
return client;
}
@Bean
public ChangeOrderClient changeOrderClient(Jaxb2Marshaller marshaller) throws Exception {
ChangeOrderClient client = new ChangeOrderClient();
client.setMarshaller(marshaller);
client.setUnmarshaller(marshaller);
return client;
}
}
Заказ клиента
public void acceptOrder(OrderResponse orderResponse) {
try {
PostDocumentResponse messageAcknowledgment = (PostDocumentResponse) getWebServiceTemplate().marshalSendAndReceive(URI, orderResponse, message -> setSoapHeaderNamespacesAndCredentials((SoapMessage) message));
} catch (Exception e) {
logger.error("Soap fault occurred when accepting order.", e);
}
}
Здесь я хочу использовать реализацию jaxb для Moxy.
pom.xml
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.moxy</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.2.11</version>
</dependency>