7

尝试将 JAX-WS Maven 项目部署到 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 文件放在 common/lib、/lib 或 /lib/endorsed 中,但仍然得到相同的结果。
很多人都遇到了这个问题,并且有很多答案,但我发现并尝试过的都没有。

更新
所以,我尝试将 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.
4

3 回答 3

13

好吧,这太荒谬了。

我从 JAXWS-rt 下载 (http://jax-ws.java.net/2.2.1/) 添加了所有 jar 文件,并将 /lib 目录中的所有 jar 文件复制到 JBOSS_HOME/servers/default/库。

之后效果很好。还是不敢相信我干了这么久。

嗯,现在一切都好。

于 2011-05-26T08:55:50.133 回答
1

我有一个类似的问题。我的 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>并且服务器启动时没有错误。Web 服务也正常运行。

于 2019-09-16T09:48:46.327 回答
0

您的 POM 依赖项应该可以工作,只需删除:

<scope>provided</scope>

如果将其定义为范围,则意味着您的服务器将提供 jar,而 Tomcat 则不是这种情况。

于 2019-07-09T07:46:25.390 回答