对于提供远程 EJB bean 的应用程序,在迁移此应用程序时,请考虑如何维护从内部部署的客户机到远程 EJB bean 的访问。
以下 Java 注释和类表明使用了远程 EJB bean:
javax.ejb.Remotejavax.ejb.RemoteHomejavax.ejb.EJBObjectjavax.ejb.EJBHome
还将通过 ejb-jar.xml 文件中的以下元素来指示远程 EJB bean:
<home> 或 <remote> 元素的 <entity> 元素<home>、<remote> 或 <business-remote> 元素的 <session> 元素,如以下示例中所示:
<session> <description>我的业务 Bean</description> <display-name>BusinessLogic Bean</display-name> <ejb-name>BusinessLogic</ejb-name> <home>com.ibm.ejbs.BusinessLogicHome</home> <remote>com.ibm.ejbs.BusinessLogic</remote> <ejb-class>com.ibm.ejbs.BusinessLogicSession</ejb-class> <session-type>无状态</session-type> <transaction-type>容器</transaction-type> </session>
包含此代码的应用程序提供了可远程访问的 EJB bean。如果可能,请考虑将访问这些 Bean 的应用程序迁移到同一云环境。 同时请考虑在内部部署的客户机应用程序将访问这些 Bean 的情况下所需的连接解决方案。
针对每个 Eclipse 项目或 Java 归档标记一次此规则。
如果客户机应用程序能够直接访问移动后的此远程 EJB 提供程序,那么无需进一步操作。
否则,一种选择是将 EJB 提供程序应用程序移至包含任何可访问远程 EJB bean 的客户机应用程序的云。 同时,分析客户机应用程序是否存在任何连接问题。 或者,您可以使用 VPN 隧道(例如,IBM Cloud Secure Gateway)来为现有内部部署的 EJB 客户机应用程序创建安全连接,以访问此远程 EJB 提供程序。有关配置安全连接的更多信息,请参阅配置 VPN。 配置网关后,通过使用在创建目标时所提供的云主机和端口号将应用程序连接至新目标。 以下示例显示 EJB 远程 URL:
在为云上的远程 EJB bean 调用配置安全连接时,请在云应用程序服务器上创建并安装 HTTP 隧道连接 servlet,并在客户端 ORB 中启用隧道连接。 有关更多信息,请参阅 Enabling HTTP tunneling。配置安全客户机以指向 HTTP 隧道连接 servlet,并使用从云安全连接配置返回的主机和端口,采用以下格式:
在将 EJB bean 移至云中且 EJB 客户机为内部部署的 EJB 客户机时,可使用此方法,反之亦然。
注:使用远程 EJB bean 的 Liberty for Java 应用程序可部署到 IBM Cloud Instant Runtime 上;但是,因为 IBM Cloud 环境中的端口限制,无法通过 CORBA/IIOP 协议远程访问这些远程 EJB bean。 有关 IBM Cloud 上的 Liberty for Java 的更多信息,请参阅 Liberty features supported in IBM Cloud。