5.5. 为远程 Jakarta Enterprise Beans 调用配置 IIOP
JBoss EAP 支持对 JBoss EAP 上部署的 Jakarta 企业 Bean 进行基于 CORBA/IIOP 的访问。
<iiop> 元素用于启用 IIOP、CORBA(调用 Jakarta Enterprise Beans)。此元素的存在意味着安装了 iiop-openjdk 子系统。<iiop> 元素包括以下两个属性:
-
默认启用:如果情况如此,则所有带有企业 Bean 2.x 主接口的 Jakarta Enterprise Beans 都通过 IIOP 公开。否则,必须通过jboss-ejb3.xml显式启用它们。 -
Use-qualified-name:如果为true,则 Jakarta Enterprise Beans 与其绑定至 CORBA 命名上下文,其中包含部署的应用程序和模块名称,如myear/myejbjar/MyBean。如果这是false,则默认绑定名称就是 bean 名称。
尽管 Jakarta Enterprise Beans 3 远程调用通常不需要 RemoteHome 接口,但任何使用 IIOP 公开的 Jakarta Enterprise Beans 3 bean 都需要此接口。然后,您必须使用 jboss-ejb3.xml 文件启用 IIOP,或在 standalone-full.xml 配置文件中为所有 Jakarta Enterprise Beanss 启用 IIOP。
启用 IIOP
要启用 IIOP,您必须安装 IIOP OpenJDK ORB 子系统,ejb 3 子系统配置中有 <iiop/> 元素。发行版 附带的 standalone-full.xml 配置启用了这两个配置。
IIOP 在服务器配置文件的 iiop-openjdk 子系统中配置。
<subsystem xmlns="urn:jboss:domain:iiop-openjdk:2.1">
<subsystem xmlns="urn:jboss:domain:iiop-openjdk:2.1">
使用以下管理 CLI 命令访问和更新 iiop-openjdk 子系统:
/subsystem=iiop-openjdk
/subsystem=iiop-openjdk
IIOP 元素采用控制服务器默认行为的两个属性。
<subsystem xmlns="urn:jboss:domain:ejb3:5.0"> ... <iiop enable-by-default="false" use-qualified-name="false"/> ... </subsystem>
<subsystem xmlns="urn:jboss:domain:ejb3:5.0">
...
<iiop enable-by-default="false" use-qualified-name="false"/>
...
</subsystem>
以下管理 CLI 命令在 ejb3 子系统中添加 <iiop> 元素 :
/subsystem=ejb3/service=iiop:add(enable-by-default=false, use-qualified-name=false)
/subsystem=ejb3/service=iiop:add(enable-by-default=false, use-qualified-name=false)
使用 IIOP 创建 Communicates 的 Jakarta Enterprise Beans
以下示例演示了如何从客户端进行远程 IIOP 调用:
在服务器上创建一个企业 Bean 2 Bean:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建具有强制方法
create()的主页实施。客户端调用这个方法来获取远程接口的代理来调用业务方法:public interface IIOPBeanHome extends EJBHome { public IIOPRemote create() throws RemoteException; }public interface IIOPBeanHome extends EJBHome { public IIOPRemote create() throws RemoteException; }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为远程连接企业 Bean 创建一个远程接口:
public interface IIOPRemote extends EJBObject { String sayHello() throws RemoteException; }public interface IIOPRemote extends EJBObject { String sayHello() throws RemoteException; }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过在
META-INF 中创建描述符文件:jboss-ejb3.xml 来引入用于远程调用的 BeanCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意现在,打包的 Bean 以及 JAR 文件中的描述符已准备好部署到 JBoss EAP 容器。
在客户端创建上下文:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意客户端需要将
wildfly iiop openjdk库添加到其类路径中。客户端可能还需要将org.wildfly:wildfly-iiop-openjdk构件添加为 Maven 依赖项。使用 context lookup 来缩小对
IIOPBeanHome主目录的引用范围。然后,调用 home 接口create()方法来访问远程接口,允许您调用其方法:Copy to Clipboard Copied! Toggle word wrap Toggle overflow