2016-01-13 99 views
0

我有一個Maven戰爭項目是依賴於一些罐子。我將它們列在我的pom.xml文件的依賴項部分,並且我看到這些jar文件放在WEB-INF/libs中。但是,當我在Glassfish上部署War文件時,它說它找不到依賴jar中的類。NoClassFoundException當部署WAR

怎麼辦?

回答

1

對於NoClassDefFoundError,除了需要了解它告訴你什麼之外,沒有簡單的答案,然後查看哪些類來自應用服務器提供的Jars中包含的Jars以及哪些類來自應用服務器提供的Jars。看看這篇文章,以解釋isse的可能原因:What causes and what are the differences between NoClassDefFoundError and ClassNotFoundException?

+0

感謝您的支持。信息非常豐富。我現在得到原因;只是不知道是什麼原因造成的。很難追查。 –

+0

這可能有助於查看您使用的是EE apis的不同實現/版本的任何庫 - 這是最可能的原因。例如你有一個已經由應用服務器提供的api x版本或實現,並且你的耳朵/戰爭中捆綁了一個不同的版本。此外,像Apache Commons Lang等通用庫。根據您使用的應用程序服務器,大多數都有自定義'喜歡從戰爭中選擇圖書館'的方法,可以強制在應用程序中使用Jars而不是服務器。 –