当前位置: 首页 > 知识库问答 >
问题:

EJB依赖注入适用于EAR,但不适用于JAR

司徒英卓
2023-03-14
  • 两个无状态EJB及其远程接口。EJB1被注入EJB2
    /// EJB1

    package com.xxx.layer1;

    @Remote
    public interface EJB1Remote {
    }

    @Stateless (mappedNamed="com.xxx.EJB1")
    public class EJB1 implements EJB1Remote {
    }


    /// EJB2

    package com.xxx.layer2;

    import com.xxx.layer1;

    @Remote
    public interface EJB2Remote {
    }

    @Stateless (mappedNamed="com.xxx.EJB2")
    public class EJB2 implements EJB2Remote {

        @EJB(mappedNamed="com.xxx.EJB1")
        EJB1Remote ejb1;
    }

>

  • EJB2还使用一些可选包(在其清单中声明)

    WebLogic应用服务器(10.3.3)

    两个EJB被打包成两个单独的JAR文件

    如果将两个JAR文件打包到一个EAR文件中并部署,则依赖注入工作。但是如果我单独部署它们,即使我首先部署了EJB1并在Weblogic(com.xxx.EJB1#com.xxx.layer1中验证了全局JNDI名称。EJB1Remote),EJB2的部署失败ClassNotFoundExc0019:com.xxx.layer1.远程

  • 共有1个答案

    欧浩淼
    2023-03-14

    在这种情况下,每个单独的JAR文件都是WebLogic中自己的应用程序,每个应用程序都有自己的类加载器。因此,当JAR文件单独部署时(不是捆绑在EAR文件中),它们的类加载器看不到其他类中的类。

    在本例中,我将EJB2的接口分离到另一个JAR文件中,并将其作为可选包部署,并将其引用添加到其他JAR文件的清单中。

     类似资料:
    • 问题内容: 我无法在CustomerServiceImpl服务类内的引用变量中注入customerDao对象。 这是我的mule_flow.mflow文件 这是我的Spring-mule.xml文件 这是我的CustomerServiceImpl.java 知道为什么DI不起作用吗? 问题答案: 您可能缺少了几件事: 您应该在要让Spring看起来带有注释的类的位置扫描软件包。在您的情况下,应将以

    • 我的应用程序正在部署到IBM WebSphere上。我有一个简单的服务,我想知道依赖注入在这种情况下是如何工作的。 它失败,出现以下错误: [错误]CWWKZ0002E:启动应用程序my app时发生异常。例外消息是:com。国际商用机器公司ws。容器服务状态StateChangeException:com。国际商用机器公司ws。cdi。CDIException:com。国际商用机器公司wsspi

    • 问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt

    • 所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。

    • 问题内容: Pycharm 2016.2.3,Mac OS X 10.11.1,Python 3.5(Homebrew); 我有这个文件夹结构 所以我的预期输出是 从PyCharm运行时,此方法工作正常。但是,当我从终端运行它时,我收到一个ImportError: 我已经找到了这个问题,这是关于相同的问题。但是,没有建议的解决方案对我有用,因为我确实使用的是与PyCharm相同的Python解释器

    • 列名称的类型为int[] 上述查询适用于postgresql,但不适用于hsqldb,甚至适用于sql 尝试的hsqldb版本:2.2.9和2.3.0 在hsqldb中工作的sql是从table_name中选择x,unnest(column_name)y(x)x和y不是该表的列。