Ошибка NoClassDeFoundError с WSServletContextListener и XMLStreamBuffer

#java #jboss #jax-ws #m2eclipse #jboss6.x

#java #jboss #jax-ws #m2eclipse #jboss6.x

Вопрос:

Я получаю следующую ошибку при попытке развернуть JAX-WS Maven-project в JBOSS6.0.0.

 17:45:03,451 ERROR [[/isp]] Error configuring application listener of class com
sun.xml.ws.transport.http.servlet.WSServletContextListener: java.lang.NoClassDe
FoundError: javax/servlet/ServletContextAttributeListener
    at java.lang.ClassLoader.findBootstrapClass(Native Method) [:1.6.0_24]
    at java.lang.ClassLoader.findBootstrapClassOrNull(ClassLoader.java:927)
[:1.6.0_24]
...
  

Мой Pom-файл имеет следующую зависимость:

 <dependency>  
    <groupId>com.sun.xml.ws</groupId>
    <artifactId>jaxws-rt</artifactId>
    <version>2.1.4</version>
    <scope>provided</scope>
</dependency>
  

Я попытался поместить jar-файл в общий/lib, /lib или / lib / одобренный, но все равно получил то же самое.
У многих людей были эти проблемы, и есть довольно определенный ответ, но ничего из того, что я нашел и попробовал, не сработало.

Обновить
Итак, я попытался поместить библиотеку в WEB-INF / lib вместо этого. И это устраняет предыдущую ошибку. Однако теперь отображается новая ошибка. Вот трассировка стека:

 09:00:46,353 ALLVARLIG [http] WSSERVLET11: failed to parse runtime descriptor: j
ava.lang.NoClassDefFoundError: com/sun/xml/stream/buffer/XMLStreamBuffer: java.l
ang.NoClassDefFoundError: com/sun/xml/stream/buffer/XMLStreamBuffer
    at com.sun.xml.ws.server.EndpointFactory.generateWSDL(EndpointFactory.ja
va:424) [:2.1.4]
    at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.
java:196) [:2.1.4]
    at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:467) [:2.
  

Ответ №1:

Ну, это было смешно.

Я добавил все jar-файлы из загрузки JAXWS-rt (http://jax-ws.java.net/2.2.1 /) и скопировал все jar-файлы из каталога /lib в JBOSS_HOME/servers/default/lib.

После этого все работало хорошо. Все еще не могу поверить, что я так долго копался в этом.

Что ж, теперь все хорошо.

Комментарии:

1. Любой пост, содержащий фразу «dry humped», заслуживает полезного голосования.

2. Работает и в Tomcat в каталоге lib

Ответ №2:

У меня была похожая проблема. Мой POM содержал

 <dependency>
    <groupId>com.sun.xml.ws</groupId>
    <artifactId>jaxws-rt</artifactId>
    <version>2.3.2</version>
    <type>pom</type>
</dependency>
  

и я получал com.sun.xml.ws.transport.http.servlet.WSServletContextListener класс, который не найден.

Я удалил <type>pom</type> , и сервер запустился без ошибок. Веб-служба также функционирует корректно.

Ответ №3:

Ваша зависимость от POM должна работать, просто удалите:

 <scope>provided</scope>
  

Если вы определяете это как область видимости, это означает, что ваш сервер будет предоставлять jar-файлы, чего нельзя сказать о Tomcat.