如何从不同JVM中的Standalone java程序调用EJB

时间:2012-01-30 09:38:46

标签: java ejb

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

2 个答案:

答案 0 :(得分:1)

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

  • 在EJB上使用@Remote注释

  • 提供带接口的jar并将其放在client-vm的类路径中

  • 使用JNDI从服务器获取EJB存根的引用。

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

一旦你对整体概念和定义感到满意,请阅读这个例子,我觉得它很方便 Example

希望这有帮助

答案 1 :(得分:1)

第1步:

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

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

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