使用 WebSphere 绑定来定义消息驱动的 Bean JNDI 名称

message-driven-descriptor 为消息侦听器配置目标。 消息目标引用是用来在充当消息目标的 EJB 模块中查找企业 Bean 的逻辑名。 消息目标引用仅在 J2EE 1.4 和更高级别工件中存在,例如:

如果多个消息目标引用与单个消息目标链接关联,那么在部署期间会对企业 Bean 的单个 JNDI 名称进行收集,该 JNDI 名称会映射至消息目标链接,并依次映射至所有已链接的消息目标引用。 在运行时,消息目标引用被绑定至目标运营环境中的受管消息目标。 如果消息目标引用和消息驱动的 Bean 是由同一消息目标链接的,那么该引用和该 Bean 必须具有同一目标 JNDI 名称。 当这两者具有同一名称时,仅会收集消息驱动的 Bean 的目标 JNDI 名称,并将其应用于相应的消息目标引用。 如果部署者选择在安装应用程序时生成缺省绑定,那么安装向导会将 JNDI 名称指定给下列不完整的消息目标引用:
If a message destination reference has a <message-destination-link>, then the JNDI name is set to ejs/message-destination-linkName 。否则, JNDI 名称将设置为 eis/message-destination-refName .

此规则会检测消息驱动的 Bean 的目标 JNDI 名称。 自动修复功能会将目标 JNDI 名称从 weblogic-ejb-jar.xml 文件中的目标 JNDI 名称复制到 WebSphere(R ) 应用服务器 绑定文件。 但是,自动修复程序不会在 ejb-jar.xml 中设置 ActivationSpec JNDI 名称或迁移激活配置属性。

用于 Liberty 的手动解决方案


用于 WebSphere Traditional 的手动解决方案

应用程序开发者可在 ibm-xxx-bnd.xml 文件中为 EJB 3.0 和 Web 2.5 模块创建绑定定义,也可在 ibm-xxx-bnd.xmi 文件中为 Java® Platform, Enterprise Edition (Java EE) 5 之前存在的模块创建绑定定义。 应用程序开发者可使用诸如 IBM® Rational® 开发者工具之类的工具来创建这些文件,或者对于 EJB 3.0 或 Web 2.5 模块,使用 XML 编辑器或文本编辑器来创建这些文件。 然后,开发者向应用程序组装者或部署者提供带有绑定的完整企业应用程序(.ear 文件)。 组装应用程序时,组装者不对这些绑定进行修改。 与此类似,在将应用程序安装到 WebSphere Application Server 支持的服务器上时,部署者不会对这些绑定进行修改或覆盖,也不会生成缺省绑定,除非必须对这些绑定进行更改才能成功部署应用程序。

要在 Rational Application Developer 中针对 EJB 2.1 Bean 进行必需的更改,请完成下列操作:
  1. 启动组装工具 Rational Application Developer。
  2. 打开正确的 EJB 项目。
  3. 双击部署描述符
  4. 单击正确的由消息驱动的 Bean。
  5. 向下滚动至“WebSphere 绑定”部分。
  6. 选择 JCA 适配器复选框,并输入 ActivationSpec JNDI 名称。


要在管理控制台中为 EJB 2.0 Bean 进行必需的更改,请完成下列操作:Rational Application Developer V7.0 不支持为 EJB 2.0 Bean 设置 EJB 2.1 激活规范。 只能为 EJB 2.1 Bean 设置 EJB 2.1 激活规范。
  1. 当将应用程序部署到 WebSphere Application Server 时,使用管理控制台来为 MDB 设置激活规范。
  2. 从管理控制台导出应用程序的 EAR 文件。
  3. 将部署描述符从该 EAR 文件复制到项目中,以便它具有正确的激活规范。

在应用程序组装期间定义绑定

应用程序组装者可在应用程序的注释或部署描述符中定义绑定。 Java EE 5 模块将注释包含在源代码中。 为了声明注释,应用程序组装者在关键字前面使用 @ 字符。 Java EE 5 之前模块的绑定是在部署描述符编辑器的“WebSphere 绑定”部分中指定的。 修改部署描述符可能会更改开发应用程序时创建的绑定文件中的绑定定义。 在定义这些绑定之后,组装者向部署者提供应用程序。 当将应用程序安装到 WebSphere Application Server 支持的服务器上时,部署者不对这些绑定进行修改或覆盖,也不生成缺省绑定(除非部署应用程序时必须对这些绑定进行更改)。


在应用程序安装期间定义绑定

当使用管理控制台来将应用程序安装到受 WebSphere Application Server 支持的服务器上时,应用程序部署者或服务器管理员可修改这些绑定。 可在安装向导页面上指定新的绑定定义。
此外,部署者或管理员可选择在应用程序安装期间生成缺省绑定。 选择在应用程序安装期间生成缺省绑定会指示产品使用缺省值完成应用程序中的绑定。 现有绑定不会更改。
限制:在为应用程序客户机进行应用程序安装期间,您无法定义或覆盖绑定。 必须在组装期间为应用程序客户机模块定义绑定,并将这些绑定存储在绑定文件中。


在应用程序安装的配置期间定义绑定

在应用程序安装到受 WebSphere Application Server 支持的服务器上之后,应用程序部署者或服务器管理员可通过在管理控制台页面中更改值(例如从企业应用程序的设置页面访问的那些值)来修改绑定。