gpt4 book ai didi

java - 如何从外部容器访问 JBoss 4.x 上的远程 EJB 2.1 bean

转载 作者:行者123 更新时间:2023-12-04 06:48:51 26 4
gpt4 key购买 nike

我有一个 session bean,在 ejb-jar.xml 和 jboss.xml 中定义。它使用 ejb 名称、远程和本地接口(interface)以及实现来定义。

当我启动 JBoss 并查看 JNDI 树时,主界面似乎在 ejb-name 的 JNDI 名称下(我尝试在 ejb-jar.xml 中定义 jndi-name 和 local-jndi-name 没有明显效果)。但是远程接口(interface)没有出现在 JNDI 列表中。

如果我尝试使用 JUnit TestCase 中的 JNDI 查找来访问 ejb 名称,事情就会变得一团糟,大概是因为我正在访问主界面。

有什么我可能会错过的想法吗?提前致谢。

最佳答案

  • 将 home 和 remote 接口(interface)打包到客户端 jar 中并放在客户端类路径中
  • jboss-client.jar在客户端类路径
  • 放一个jndi.properties在客户端类路径中包含以下内容的文件
    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
    java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
    java.naming.provider.url=jnp://localhost:1099
  • 对远程接口(interface)的 JNDI 名称执行查找(在 JBoss 中默认是这样的)
    Context c = new InitialContext();
    return (Echo) c.lookup("EchoBean/remote"); // use myEarName/HelloWorldBean/remote in an ear
  • 关于java - 如何从外部容器访问 JBoss 4.x 上的远程 EJB 2.1 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3414640/

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