gpt4 book ai didi

ejb - 查找远程 Bean,在 JBoss 7.1 中获取 EjbNamingContext

转载 作者:行者123 更新时间:2023-12-04 17:50:50 24 4
gpt4 key购买 nike

我有一个 Maven 项目,我想在其中尝试集成测试 EAR 子模块。
在集成测试子模块中,我执行以下操作:

Properties env;
Context ctx;

env = new Properties();

env.setProperty( "java.naming.factory.initial", "org.jboss.naming.remote.client.InitialContextFactory");

env.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
env.setProperty( "java.naming.provider.url", "remote://localhost:4447");
env.put(Context.SECURITY_PRINCIPAL, "jboss-user");
env.put(Context.SECURITY_CREDENTIALS, "*******");
ctx = new InitialContext( env );


IBMPFacadeRemote bmpFacade = ( IBMPFacadeRemote ) ctx.lookup( "ejb:DeDomain-ejb-1.0-SNAPSHOT/BMPFacade!de.domain.service.IBMPFacadeRemote");
bmpFacade.executeBMPProcess( model1, model2);//model1 & model2 are some entities

问题:调用 mvn integration-test 时会出现以下异常
java.lang.ClassCastException: org.jboss.ejb.client.naming.ejb.EjbNamingContext cannot be cast to de.domain.service.IBMPFacadeRemote

有人可以帮我解决这个问题吗?是否有可能使用本地 Bean 进行集成测试(maven 项目使用故障安全插件)?

最佳答案

现在很难说究竟是什么解决了这个问题,但我会尝试提及所有解决问题的更改。

  • 将依赖项添加到 pom.xml
    <dependency>
    <groupId>org.jboss.as</groupId>
    <artifactId>jboss-as-ejb-client-bom</artifactId>
    <version>7.1.1.Final</version>
    <type>pom</type>
    </dependency>
    <dependency>
    <groupId>org.jboss.as</groupId>
    <artifactId>jboss-as-jms-client-bom</artifactId>
    <version>7.1.1.Final</version>
    <type>pom</type>
    </dependency>
  • 将 JNDI 查找更改如下(更改 EAR&EJB 项目的部署名称后)
    IBMPFacadeRemote bmpFacade = ( IBMPFacadeRemote ) ctx.lookup( "ejb:DeDomain-ear/DeDomain-ejb//BMPFacadeBean!de.domain.service.IBMPFacadeRemote");
  • 从 EJB 项目中删除了 EJB maven 插件和一些其他资源,例如 jndi.properties

  • 可能值得一提的是, Properties实例与问题中所述相同。

    关于ejb - 查找远程 Bean,在 JBoss 7.1 中获取 EjbNamingContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14776877/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com