在JBoss中实现CORBA接口

在JBoss中实现CORBA接口,jboss,ejb,corba,iiop,Jboss,Ejb,Corba,Iiop,我正在寻找关于如何通过CORBA访问EJB(或底层MBean)的教程或其他信息 这就是我所发现的: 我有一个现有的CORBA服务器(基于java,但不是标准的),我想允许它调用我的JBossMBean。这个MBean已经使用EJB(v2.1)通过RMI公开 当前AppServer目标版本是jboss-eap-4.3 编辑:我希望我的问题太模糊,无法得到回答,所以这里有一个更新: 我希望运行在JBoss中的EJB注册到运行在远程独立服务器上的Corba ORB。至少我想我知道。现有的CORBA客

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

这就是我所发现的:

我有一个现有的CORBA服务器(基于java,但不是标准的),我想允许它调用我的JBossMBean。这个MBean已经使用EJB(v2.1)通过RMI公开

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


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

我希望运行在JBoss中的EJB注册到运行在远程独立服务器上的Corba ORB。至少我想我知道。现有的CORBA客户机通过定义的IDL/接口连接到服务,我正试图通过JBossEJB实现该接口。此时,所述客户端连接到同一接口的多个实例,以通过该接口获取信息并管理本地(同一流程)服务。我希望JBossEJB作为这个CORBA IDL的另一个实现被加入

我对CORBA的理解一开始就很生疏和薄弱,所以我没有走多远。我可以很容易地在JBoss中运行ORB,但我不清楚如何设置绑定,以便“遗留”CORBA ORB可以找到它。我可以更改JBoss实现的任何部分来实现这一点,但是更改其他服务器是很困难的

有没有一种方法可以让EJB向远程服务器(ala jndi)注册自身?
现有客户端是否能够连接到Jacorb而不添加jboss特定的类?

简而言之,您必须实现一个适配器,在jboss中部署它,在远程NamingService中注册它。在适配器实现中,可以调用MBean

现在有更多细节 有了CORBA idl,就可以生成存根和骨架

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

  • Corba orb是套接字侦听器,因此最好使用JBoss控制下的一个,即标准orb:

    ObjectName ORB_NAME=ObjectNameFactory.create(“jboss:service=CorbaORB”); ORB ORB=(ORB)server.getAttribute(ORB_名称,“ORB”)

  • 要自动启动Corba服务,请在JBoss服务mbean中执行此操作:

  • 为了避免编译IDL,可以使用动态调用接口。 看看Axis2 CORBA模块是如何实现的:

  • 如果使用JBoss“all”配置,则不需要类路径上的Orb,这包括Corba


  • 这不是太模糊,只是你可以用一只手数一数stackoverflow上的CORBA开发人员的数量。@skaffman我在掌握CORBA之后,必须找到一个Ada问题。谢谢!这很有效。我希望使用JBoss CORBA机制(基于反射)并避免idlj,以保持CORBA的平衡。我可能会使用反射重新实现一些东西,以避免为每个MBean编写新的CORBA适配器。