Использование ссылки ecplise с шаблоном веб-сервиса SpringJAVA

Программисты JAVA общаются здесь
Anonymous
Использование ссылки ecplise с шаблоном веб-сервиса Spring

Сообщение Anonymous »

Я пытаюсь использовать Eclipse Moxy для маршалинга в Spring-WS. Использование:

Код: Выделить всё

    
org.eclipse.persistence
org.eclipse.persistence.moxy
4.0.3

К сожалению, у меня нет библиотеки с аннотированными объектами запроса/ответа xsd и java. Поэтому размещение файла jaxb.properties в этом каталоге у меня не работает (согласно https://eclipse.dev/eclipselink/documen ... ml#RUNTIME).
Я пытался создать bean-компонент JaxbContext:

Код: Выделить всё

@Bean
public JAXBContext jaxbContext() throws JAXBException, IOException {

Class[] classes = ....array of classes;

return org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(classes, null);
}
С помощью этого jaxbcontext я могу создать jakarta.xml.bind.Marshaller и jakarta.xml.bind.Unmarshaller. Однако для Spring-ws (WebServiceTemplate) требуются org.springframework.oxm.Marshaller и org.springframework.oxm.Unmarshaller .
Marshaller с JAXBcontext:

Код: Выделить всё

    jakarta.xml.bind.Marshaller marshaller = jaxbContext.createMarshaller();
jakarta.xml.bind.Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
StringSource[] xsdResourcesRequests = ...resources
StringSource[] xsdResourcesResponses = ...resources;

marshaller.setSchema(sf.newSchema(xsdResourcesRequests));
unmarshaller.setSchema(sf.newSchema(xsdResourcesResponses));

marshaller.setSchema(sf.newSchema(xsdResourcesRequests));
unmarshaller.setSchema(sf.newSchema(xsdResourcesResponses));
Обязательно:

Код: Выделить всё

    @Bean
public WebServiceTemplate WebServiceTemplate(org.springframework.oxm.Marshaller marshaller, org.springframework.oxm.Unmarshaller unmarshaller, HttpClientMessageSender messageSender) {
WebServiceTemplate webServiceTemplate = new WebServiceTemplate(marshaller, unmarshaller);
webServiceTemplate.setMessageSender(messageSender);
webServiceTemplate.setDefaultUri("some-uri");
return webServiceTemplate;
}
Как преодолеть эту разницу?
Дополнительная информация:
java 17
spring-boot 3.3.0
-> Spring-WS-Core 4.0.11
-> Spring-oxm:jar 6.1.8
org.eclipse.persistence.moxy:jar 4.0.3

Подробнее здесь: https://stackoverflow.com/questions/787 ... cetemplate

Вернуться в «JAVA»