在JBoss中实现CORBA接口
我正在寻找关于如何通过CORBA访问EJB(或底层MBean)的教程或其他信息 这就是我所发现的: 我有一个现有的CORBA服务器(基于java,但不是标准的),我想允许它调用我的JBossMBean。这个MBean已经使用EJB(v2.1)通过RMI公开 当前AppServer目标版本是jboss-eap-4.3在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客
编辑:我希望我的问题太模糊,无法得到回答,所以这里有一个更新: 我希望运行在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
这不是太模糊,只是你可以用一只手数一数stackoverflow上的CORBA开发人员的数量。@skaffman我在掌握CORBA之后,必须找到一个Ada问题。谢谢!这很有效。我希望使用JBoss CORBA机制(基于反射)并避免idlj,以保持CORBA的平衡。我可能会使用反射重新实现一些东西,以避免为每个MBean编写新的CORBA适配器。