2012-01-30 18 views
2

我使用具有glassfish服务器的NETbeans IDE开发了EJB。我可以从独立的java调用它,只要这个java项目是在NETbeans下开发的并且在相同的JRE下运行。但我需要找出如何在不同的jre中运行它。 我找不到这个帮助。有什么建议么? (或相关链接会做) 谢谢,如何在独立的Java程序中调用异步JVM中的EJB

回答

1

为了从远程JVM调用EJB,你应该

  • 使用@Remote注释你的EJB

  • 供应与接口一个罐子,把它放在你的客户端的类路径中-vm

  • 使用JNDI为了从服务器获得EJB存根的引用。

  • 对于JNDI,您需要一个依赖于容器的实现(例如,如果它的JBoss jboss-client-all.jar应该足够了(我不记得确切的名称,但您已经得到了重点,我认为)

一旦你感到舒服的总体概念和定义,看了这个例子,我认为它不够方便 Example

希望这有助于

1

第1步:

Context context = new InitialContext(): 
  1. 初始上下文是JNDI查找服务的引用。
  2. 这就像进入JNDI虚拟目录树一样。

STEP 2:

Object o = context.lookup("mejb"): 
  1. 在这里,我们需要给任何被部署在服务器上的bean的名称,获取对bean的home接口的引用查找。
  2. 然后,我们得到类型为java.lang.Object的对象,我们需要将该对象强制转换为我们执行查找的任何bean的Home接口。

第3步:

Home home = (Home) PortableRemoteObject.narrow(o,Home.class): 
  1. 实际上,我们需要将对象转换为,我们认为它是类型的类型。但是,由于这是IIOP上的RMI,我们需要使用PortableRemoteObject.narrow方法,它似乎将对象类型过滤为实际的对象类型并检查错误。
相关问题