【问题标题】:NoClassFoundException when deploying WAR部署 WAR 时出现 NoClassFoundException
【发布时间】:2016-01-13 20:15:49
【问题描述】:

我有一个依赖于多个 jar 的 Maven 战争项目。我将它们列在我的 pom.xml 文件的依赖项部分中,我看到这些 jar 文件放在 WEB-INF/libs 中。但是,当我在 Glassfish 上部署 war 文件时,它说它找不到依赖 jar 中的类。

怎么办?

【问题讨论】:

    标签: java maven


    【解决方案1】:

    对于 NoClassDefFoundError 没有简单的答案,除了您需要了解它告诉您的内容,然后查看哪些类来自您应用中捆绑的 Jars,以及哪些类来自应用服务器提供的 Jars。查看这篇文章,了解问题的可能原因:What causes and what are the differences between NoClassDefFoundError and ClassNotFoundException?

    【讨论】:

    • 谢谢。信息量很大。我现在明白了原因;只是不知道是什么原因造成的。很难追踪。
    • 这可能有助于查看您正在使用的任何库,这些库是 EE api 的不同实现/版本 - 这是最可能的原因。例如你有一个版本或实现的 api x 已经由应用服务器提供,而另一个版本捆绑在你的 Ear/War 中。此外,常见的库,如 Apache Commons Lang 等。根据您使用的应用服务器,大多数都有一种方法来自定义“从战争中首选库”,这可以强制在您的应用中使用 Jars,而不是服务器。
    猜你喜欢
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    相关资源
    最近更新 更多