gpt4 book ai didi

java - CXF : java. lang.ClassNotFoundException : org. apache.cxf.transport.servlet.CXFServlet

转载 作者:太空宇宙 更新时间:2023-11-04 06:58:53 29 4
gpt4 key购买 nike

我正在尝试在 WAS 8.0 中部署 REST Web 服务

应用程序 EAR 已成功安装。

但是,无论是在发布时还是在发布后从网络浏览器访问服务时,我都会收到以下错误:

[3/13/14 13:42:20:652 IST] 00000024 servlet       E com.ibm.ws.webcontainer.servlet.ServletWrapper run SRVE8052E: Logging ClassNotFoundException
java.lang.ClassNotFoundException: class java.lang.ClassNotFoundException: org.apache.cxf.transport.servlet.CXFServlet
at java.beans.Beans.instantiate(Beans.java:190)
at java.beans.Beans.instantiate(Beans.java:75)
at com.ibm.ws.webcontainer.servlet.ServletWrapper$1.run(ServletWrapper.java:1471)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.loadServlet(ServletWrapper.java:1460)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.load(ServletWrapper.java:1358)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:982)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3751)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:962)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:276)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1690)

但是,包含类 viz 的 jar。 cxf-rt-transports-http-2.7.4.jar 存在于安装的 EAR 内 WAR 的 lib 目录中。

问题的原因是什么?

如何解决?

更新:我的 web.xml 如下:

<web-app>
<display-name>MyService</display-name>

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
<servlet-name>CXFServlet</servlet-name>
<display-name>CXF Servlet</display-name>
<servlet-class>
org.apache.cxf.transport.servlet.CXFServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>

</web-app>

最佳答案

我看到您提到了“发布”一词,这暗示您可能正在使用 Eclipse,或者可能是 IBM 的 RAD,甚至是 MyEclipse Blue。

如果这是真的,请继续阅读...

虽然由 m2e/Maven 生成的 .ear 可能在 .war 文件中存在 .jar 文件,但由 m2e-wtp 生成的 .ear 和 .war 文件可能缺少 .jar 文件。当您从 Eclipse/RAD/MyEclipse Blue 中将应用程序发布/重新发布到 WAS 时,将使用 m2e-wtp 生成的 .ear 文件。

尝试从本地 WAS 中删除该应用程序,找到 m2e-wtp 生成的 .ear 文件的位置,然后将其删除。从那里,如果您清理项目(所有关联的 pom、ear、war 等),m2e-wtp 应该自动生成一个新的 .ear 文件

当您发布应用程序时,它应该找到该类。我过去也遇到过同样的问题。我的建议解决了这个问题。

除此之外,您可能需要将类加载器策略设置为 PARENT_LAST 并检查您是否在 WAS 管理控制台中为整个应用程序使用单个类加载器(类加载器策略单选按钮下方的第二组单选按钮)。但是,我怀疑类加载器策略是问题所在。

关于java - CXF : java. lang.ClassNotFoundException : org. apache.cxf.transport.servlet.CXFServlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22372741/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com