java EE项目遇到NoClassDefFoundError

时间:2017-01-13 10:04:00

标签: servlets java-ee intellij-idea ejb-3.1 wildfly-10

我正在使用

开发Java EE项目
  1. jdk 1.8
  2. wildfly 10.1.0 final
  3. intellij idea 2016.3
  4. 该项目有一个Web应用程序模块和一个ejb模块,结构如下: project structure

    这两个模块已经成功部署 enter image description here

    但是当我试图调用会话bean时,ejb项目出错并抛出错误

    Caused by: java.lang.NoClassDefFoundError: org/json/JSONArray

    我在ejb模块的类DAOHelperImpl中使用JSON,并且我已经添加了依赖项。我试图将jar放在各种包中,例如/ ejb / lib或/ web / web / lib,但它们都没有工作。

    出了什么问题?

2 个答案:

答案 0 :(得分:0)

将jars库从/web/web/lib移动到

  

/网络/网络/ <强> WEB-INF / lib中

按照惯例,自动包含罐子的常规文件夹是:
web的项目名/的WebContent / WEB-INF / lib中

在此处阅读更多内容:https://blogs.oracle.com/alexismp/entry/web_inf_lib_jar_meta

我不知道IntelliJ如何处理Java EE项目 在Eclipse中,EAR和WAR位于不同的项目中,可以相互分配。

答案 1 :(得分:0)

我认为这个错误是由于我对这个web应用程序与ejb模块如何工作的理解不好而引发的:我分别部署了web模块和ejb模块,而且似乎wildfly只能链接到lib的网络模块。 解决方案是仅将Web应用程序部署到服务器,并将ejb模块添加到Web应用程序。

相关问题