jboss - 在 JBoss 中实现 CORBA 接口(interface)

标签 jboss ejb corba iiop

我正在寻找有关如何通过 CORBA 访问 EJB(或底层 MBean)的教程或任何其他信息。

这就是我找到的所有内容:http://www.jboss.org/jbossiiop

我有一个现有的 CORBA 服务器(基于 Java,但不是标准的),我想让它调用我的 JBoss MBean。此 MBean 已使用 EJB (v2.1) 通过 RMI 公开。

当前的 AppServer 目标版本是 jboss-eap-4.3。


编辑:我希望我的问题太模糊而无法得到回答,所以这里有一个更新:

我希望我在 JBoss 中运行的 EJB 向在远程独立服务器上运行的 Corba ORB 注册。至少我认为是的。现有的 CORBA 客户端通过我试图通过 JBoss EJB 实现的定义的 IDL/接口(interface)连接到服务。此时,所述客户端连接到同一接口(interface)的多个实例,以通过该接口(interface)拉取信息和管理本地(同一进程)服务。我希望将 JBoss EJB 作为此 CORBA IDL 的另一个实现放入。

我对 CORBA 的理解从一开始就生疏而且薄弱,所以我不会走得太远。我可以很容易地在 JBoss 中运行 ORB,但我不清楚如何设置绑定(bind)以便“遗留”CORBA ORB 可以找到它。我可以更改 JBoss 实现的任何部分以使其工作,但更改其他服务器很困难。

有没有办法让 EJB 向远程服务器 (ala jndi) 注册自己? 现有客户端是否能够在不添加 jboss 特定类的情况下连接到 Jacorb?

最佳答案

简而言之,您必须实现一个适配器,将其部署在 Jboss 中,并向远程 NamingService 注册它。在您的适配器实现中,您调用您的 MBean。

现在更详细 你有一个 CORBA idl,你生成 stub 和骨架。

interface Stock {
    int getQuote( in string company);
};

您提供必要的实现

public class StockImpl extends StockPOA {
  public int getQuote(String company) {
     //forward a call to MBean here
  }
}

您执行通常的 CORBA 注册操作。像这样的东西:

org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(...);
org.omg.PortableServer.POA poa = org.omg.PortableServer.POAHelper.narrow(orb.resolve_initial_references("RootPOA"));

poa.the_POAManager().activate();

NamingContextExt nc = NamingContextExtHelper.narrow(orb.resolve_initial_references("NameService"));

NameComponent [] name = new NameComponent[1];

org.omg.CORBA.Object o = poa.servant_to_reference( new StockImpl(orb,poa));
name[0] = new NameComponent( "Stock", "server");
nc.bind(name, o);

orb.run();

现在您的对象已在远程 NamingService 中注册并且可以通过 CORBA 访问。

您必须在 JBOSS 类路径中包含 CORBA jar。

关于jboss - 在 JBoss 中实现 CORBA 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5093233/

相关文章:

java - idlj 忽略 "#pragma prefix"

java - MICO Corba 的直接替代品?

java - 使用 JBoss 和 Intellij 进行部署

logging - 使用 EJB 3 发送 JMS 消息时的事务划分

java - 使用 C++ 和 Java 的 CORBA 的 IPC

java - 在初始化静态变量期间调用 Singleton EJB

java - 无法从 Java SE 客户端访问 EJB - 查找失败错误

java - Jboss 服务器错误 :Server already running on localhost

java - 为什么我不能在 JBoss 上的 Solr 中实例化 DataImportHandler?

html - CSS 适用于 JBoss (OpenShift),但不适用于 Tomcat 7