#jaxb #spring-ws
#jaxb #spring-ws
Вопрос:
Мы пытаемся внедрить Jaxb2Marshaller в наш проект веб-сервиса, но получаем java.lang.Нет ошибки в classdeffounderror для класса javax.activation.DataHandler, однако зависимость от артефакта активации существует, и мы убедились, что activation.jar фактически развертывается, так что это вызвано чем-то другим.
Вот конфигурация приложения:
<sws:annotation-driven />
<sws:dynamic-wsdl id="security" portTypeName="security" locationUri="/">
<sws:xsd location="classpath:security-service.xsd"/>
</sws:dynamic-wsdl>
<bean class="org.springframework.ws.server.endpoint.adapter.GenericMarshallingMethodEndpointAdapter">
<constructor-arg ref="marshaller" />
</bean>
<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound" >
<list>
<value>com.app.model.SimpleRoleList</value>
</list>
</property>
<property name="schema" value="classpath:types.xsd"/>
</bean>
Как всегда, помощь действительно ценится.
Редактировать—————
Это происходит только тогда, когда приложение развернуто в Tomcat 6.
Комментарии:
1. Что произойдет, если вы удалите это исправление?
2. @skaffman: Ничего, та же ошибка. Я удалю комментарий к редактированию, чтобы никто не запутался, поскольку он, по-видимому, не связан.
3. Возможно, вы также захотите удалить «исправление», тогда это просто отвлекающий маневр.
Ответ №1:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>3.2.6.RELEASE</version>
</dependency>
используйте это, оно будет поддерживать для u
Ответ №2:
Я только что заметил, что у меня были более старые версии jaxb-api.jar и jaxb-impl.jar в папке, одобренной Tomcat, чем те, которые я использую в приложении. Есть два способа решения этой проблемы; Первый — удалить jar-файлы из одобренной папки, а затем добавить jaxb в качестве зависимости времени выполнения от POM проектов:
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.2</version>
</dependency>
Второй способ заключается просто в обновлении jar-файлов в одобренной папке до более новых версий (в моем случае ее версии 2.2.2).
Это исправляет проблему.
Надеюсь, это кому-то поможет.