【问题标题】:How to resolve java.lang.NoClassDefFoundError?如何解决 java.lang.NoClassDefFoundError?
【发布时间】:2011-04-22 11:12:21
【问题描述】:

我目前正在开发一个简单的 Web 项目,为此我使用了 Polarion 的 SDK。当尝试使用相应的 *.jar 文件时,Tomcat 7 在启动时会抛出以下错误消息:

SCHWERWIEGEND: Exception sending context initialized event to listener instance of class org.apache.myfaces.webapp.StartupServletContextListener
java.lang.NoClassDefFoundError: Lcom/polarion/alm/ws/client/session/SessionWebService;

根据我进行的研究,Java 正试图找到 com.polarion.ws.client.session.SessionWebService 的 instance(因此是领先的 L) .我已经检查了所需条目的类路径 - 它就在那里。

C:\Polarion\polarion\SDK\lib\com.polarion.alm.ws.client\wsclient.jar

到目前为止,我已经没有什么可能出错的想法了。你有什么想法吗?

非常感谢! 西蒙

【问题讨论】:

    标签: java tomcat noclassdeffounderror tomcat7


    【解决方案1】:

    您不应该将用于 webapps 的库放在 CLASSPATH 中。你应该把它们放在你的 webapp 的 WEB-INF/lib 中。

    【讨论】:

    • 典型的初学者错误。将相应的 .jar 复制到 WEB-INF/lib 中立即解决了问题。非常感谢!
    • 我很高兴它仍然像多年前我上次使用 Tomcat 时一样工作 :)
    • @RobinGreen 如果我想将我的 jar 文件放在 WEB-INF/lib 之外怎么办?是否可以从那里设置类路径?
    • @Achyut 请在 Stackoverflow 上提出一个新问题。我不知道。
    【解决方案2】:

    部署和编译是不同的过程。你应该知道,你可以编译,但如果部署的应用程序无法访问必要的库,你会得到这个异常。正如前面的回答所建议的,你应该把必要的库 WEB-INF/lib 放在你的 web 应用程序的目录..

    【讨论】:

    • 很高兴我现在明白了其中的区别。
    猜你喜欢
    • 2013-08-01
    • 2019-01-08
    • 2018-07-30
    • 2016-08-26
    • 2017-02-15
    • 1970-01-01
    相关资源
    最近更新 更多