Spring WS с JAXB2Marshaller - javax.activation.DataHandler NoClassDefFoundError - PullRequest
0 голосов
/ 10 мая 2011

Мы пытаемся реализовать JAXB2Marshaller для нашего проекта веб-сервиса, но мы получаем java.lang.NoClassDefFoundError для класса javax.activation.DataHandler , однако зависимость от активация артефакт существует, и мы убедились, что на самом деле развертывается файл activ.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>

Как всегда, помощь очень ценится.

EDIT --------------

Это происходит только при развертывании приложения в Tomcat 6.

Ответы [ 2 ]

1 голос
/ 15 марта 2016
     <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-oxm</artifactId>
        <version>3.2.6.RELEASE</version>
    </dependency>

используйте это, оно будет поддерживать вас

0 голосов
/ 20 мая 2011

Я только что заметил, что у меня есть более старые версии 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).

Это исправляет это.

Надеюсь, это кому-нибудь пригодится.

...