В конечном счете есть две проблемы, которые необходимо подлежащее решению:
- Внесите как маркер или маркер с JAXB, так и Castor
- Определить, когда, когда использовать JAXB или касторовое
Item # 1 - Вводите как JAXB и Castor маршаллер/unmarshaller
org.springframework.ws.server.endpoint.adapter.GenericMarshallingMethodEndpointAdapter имеет только одно имущество маршалла и одно свойство unmarshaller. Там может быть два пути решения этой проблемы:
Вариант № 1 - Подкласс GenericMarshallingMethodEndpointAdapter
Вы могли бы подкласс rg.springframework.ws.server.endpoint.adapter.GenericMarshallingMethodEndpointAdapter и ввести второй ИАС ап свойство unmarshaller. Тогда вы будете настраивать этот что-то вроде:
<bean id="jaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="contextPath" value="com.example"/>
</bean>
<bean id="castorMarshaller" class="org.springframework.oxm.castor.CastorMarshaller">
<property name="mappingLocation">
<value>classpath:config/service/mapping.xml</value>
</property>
</bean>
<bean
class="your.domain.YourGenericMarshallingMethodEndpointAdapter">
<property name="marshaller" ref="jaxbMarshaller" />
<property name="unmarshaller" ref="jaxbMarshaller" />
<property name="castorMarshaller" ref="castorMarshaller" />
<property name="castorMarshaller" ref="castorMarshaller" />
</bean>
Вариант № 2 - реализовать свой собственный ИАС
Вы могли бы реализовать свой собственный маршаллер, который является одновременно JAXB и Castor известно. Затем настроить что-то вроде:
<bean id="marshaller" class="your.domain.CustomMarshaller">
<property name="contextPath" value="com.example"/>
<property name="mappingLocation">
<value>classpath:config/service/mapping.xml</value>
</property>
</bean>
<bean
class="org.springframework.ws.server.endpoint.adapter.GenericMarshallingMethodEndpointAdapter">
<property name="marshaller" ref="marshaller" />
<property name="unmarshaller" ref="marshaller" />
</bean>
Пункт № 2 - Определить, когда, когда использовать JAXB или касторовое
Это может быть сложнее вещь, чтобы решить. После того, как вы узнали о своей конечной точке как JAXB, так и Castor, вам все равно нужно выбрать один для выполнения операции маршала. Этот аспект может быть проще решить с помощью подхода пользовательского маршаллера, описанного выше.
Для получения более подробной информации
Ниже приведены инструкции по настройке JAXB с Spring:
Следующая содержит инструкции по настройке Castor (и JAXB):
И ваш вопрос ...? – skaffman
как это сделать? –