gir*_*ish 4 websphere ejb websphere-liberty
我正在开发一个项目,我们计划使用 WLP(WebSphere liberty)而不是传统的 WAS。
该代码具有用于不同组件的 ejb 模块(ejb 2 和 3)。一个组件的 EJB 客户端被其他一些组件用来与 EJB 服务器模块进行通信。
我知道 liberty 有一些 ejb 功能。但是 liberty 是否具有与 WAS 9 中提供的相同级别的 EJB 支持/功能?
自由使用 EJB 有哪些限制/问题?
WebSphere v9 和 WebSphere Liberty 都支持完整的 EJB 3.2 规范(其中包括对 EJB 1 和 EJB 2 的后台支持)。然而,当涉及到支持的超出 EJB 规范的可选功能和扩展时,WebSphere Liberty 存在一些限制。与 WebSphere v9 相比,WebSphere Liberty 当前的限制是:
实体 Bean:Liberty 不支持可选的 2.x / 1.x CMP/BMP 实体 Bean API 组。
JAX-RPC Web 服务端点:Liberty 不支持可选的 JAX-RPC Web 服务端点 API 组。(支持 JAX-WS 端点) 更新: 2022 年 1 月新增的 Maven/Gradle 转换工具可用于将 JAX-RPC 应用程序迁移到 JAX-WS。有关详细信息,请参阅以下博客文章和文档。
可嵌入 EJB 容器:Liberty 不提供可选可嵌入 EJB 容器 API 组的实现。
事务传播:Liberty 不支持远程 EJB 方法的出站或入站事务传播。事务在服务器进程内传播,但不是从客户端或与另一个服务器进程传播。
EJB 瘦客户端支持:Liberty 不提供 EJB 瘦客户端,但支持使用 WebSphere v9 EJB 瘦客户端。Liberty 确实提供了完整的 Java EE 应用程序客户端。此外,Liberty 不提供手动生成与瘦客户端一起使用的 EJB 存根类的工具,尽管使用 RMIC (EJB 2.x/1.x) 或来自 WebSphere v9 的 createEJBStubs 命令 (EJB 3.x) 生成的存根是支持的。
自定义 JNDI 名称:Liberty 不支持使用自定义名称(来自ibm-ejb-jar-bnd.xml)将 EJB 绑定到 JNDI。java:globalEJB 在、java:app和中规范定义的位置中可用java:module。注意:此支持正在开发中,您可以按照此处详细说明的进度进行操作: https: //github.com/OpenLiberty/open-liberty/issues/7918
更新:现在从 Liberty 20.0.0.12 开始可用。
持久计时器故障转移:Liberty 不支持将 EJB 持久计时器故障转移到其他服务器实例。注意:此功能正在开发中(目前处于测试阶段),您可以按照此处详细说明的进度进行操作:
https: //github.com/OpenLiberty/open-liberty/issues/7774 更新:现在从 Liberty 20.0 开始可用。 0.5。
有状态会话故障转移:Liberty 不支持将有状态会话 Bean 的状态故障转移到其他服务器实例。
WLM:Liberty 不提供与 WebSphere v9 中提供的用于远程 EJB 调用的工作负载管理支持类似的功能。
PMI:Liberty 不支持 WebSphere v9 上提供的 WebSphere 性能监控基础设施。
远程 EJB 接口的本地优化:同一服务器进程内的远程 EJB 调用未优化,它们将通过完整的 RMI/IIOP 堆栈。
EJB MDB 对侦听器端口的支持:Liberty 支持将激活规范与消息驱动的 Bean 一起使用。
根据应用程序的描述,由于缺乏对事务传播、EJB 瘦客户端和 WLM 的支持,您可能会在使用 EJB 远程接口时遇到问题。您可能需要考虑将这些 bean 公开为 Web 服务端点 ( @WebService)。另外,如果应用程序使用自定义 JNDI 名称(例如ejb/ABean或ejblocal:ABean),那么您需要将这些名称切换为使用规范定义的位置(例如 )来查找 bean java:global/<app>/<module>/ABean!<interface>。
| 归档时间: |
|
| 查看次数: |
2731 次 |
| 最近记录: |