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

问题描述 投票:2回答:2

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

java ejb
2个回答
1
投票

为了从远程JVM调用EJB,您应该这样做

  • 在EJB上使用@Remote注释
  • 提供带接口的jar并将其放在client-vm的类路径中
  • 使用JNDI以从服务器获取EJB存根的引用。
  • 对于JNDI,你需要一个依赖于容器的实现(例如,如果它的JBoss jboss-client-all.jar应该足够了(我不记得确切的名字,但你知道了)

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

希望这可以帮助


1
投票

步骤1:

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

第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方法,因此它似乎将对象类型过滤为实际的对象类型并检查错误。
© www.soinside.com 2019 - 2024. All rights reserved.