2

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

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

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

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

4

1 回答 1

3
  1. 将 home 和 remote 接口打包到客户端 jar 中并放在客户端类路径中

  2. 放在jboss-client.jar客户端类路径上

  3. 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
    
  4. 对远程接口的 JNDI 名称执行查找(在 JBoss 中默认是这样的)

    Context c = new InitialContext();
    return (Echo) c.lookup("EchoBean/remote"); // use myEarName/HelloWorldBean/remote in an ear
    
于 2010-09-02T01:14:10.603 回答