栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

我的EAR找不到ejb模块类

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我的EAR找不到ejb模块类

EAR文件只是各种企业模块(EJB jar,WAR文件和常规jar文件)的容器,这些容器具有一些定义明确(但常常被误解)的规则,哪些类可以看到哪些规则。

在大多数情况下,您将看到具有以下内部结构的EAR文件:

EAR -lib |  - utilityA.jar |  - utilityB.jar |  - ... |- ejb-jarC.jar |- ejb-jarD.jar |- ... |- warE.jar |- warF.jar |- ...

出于类可见性的考虑,该EAR上面显示了五个模块:

  1. lib模块
  2. ejb-jar1.jar
  3. ejb-jar2.jar
  4. war1.jar
  5. war2.jar

哪里:

  1. lib模块中的所有jar都被视为在同一模块中;
  2. 每个WAR文件中的所有jar和类都被视为在同一模块中;
  3. 每个ejb-jar是一个独立的模块。

通常,每个模块都有自己的类加载器。

现在,JBossAS / WildFly放宽了类可见性规则,以使开发人员的生活更简单(并且出于历史原因)。在这些服务器实现上,规则是:

  1. 每个WAR模块都可以看到自己的类,每个EJB jar中的类以及EAR / lib目录中每个jar中的类。
    • 它看不到 其他 WAR模块中的类;
  2. 每个EJB模块可以看到它自己的类,其他EJB模块中的类以及EAR / lib目录中每个jar中的类。
    • 它看不到 任何 WAR模块中的类;
  3. EAR / lib模块中的类只能互相查看:
    • 他们看不到 任何 EJB模块或WAR模块中的类

更严格的实现将需要定义清单类路径条目,以使EJB模块和WAR模块彼此可见。

现在,鉴于上述所有情况,您的特定问题很可能是以下情况之一:

  1. lib模块中的类试图访问EJB模块之一或WAR模块之一中的类-您是否将struts2 jars放在EAR / lib目录中?
  2. 试图访问其中一个WAR模块中的类的EJB模块中的类

综上所述,由于您使用的是JavaEE 7服务器,因此可以使您的生活更加轻松。
只需将包括EJB在内的所有内容打包到WAR文件中。您可能没有从构建和部署EAR中获得任何好处



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/486709.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号