【问题标题】:Overwrite annotated Destination of MDB in a deployment descriptor覆盖部署描述符中 MDB 的注释目的地
【发布时间】:2011-07-29 22:26:44
【问题描述】:

我开发了一个消息驱动 bean,现在将用于多个目标。 我想不是通过注释来定义目标目的地(这将迫使我更改每个新目的地的代码),而是在部署描述符中。在 Java EE 6 中,dp 应该覆盖所有注释。

在我的例子中,我创建了一个 ejb-jar 并配置了我的 mdb。不幸的是,现在部署了两个 mdb。一个带有带注释的配置,一个来自 ejb-jar。

我可以轻松删除注释并坚持使用描述符,但我希望将注释保留为“默认”值。

有没有办法重新配置我班级的注释?

mdb 将在 jboss 6 中运行。

【问题讨论】:

    标签: jakarta-ee deployment jboss6.x message-driven-bean deployment-descriptor


    【解决方案1】:

    部署 2 个 mdb 是什么意思?

    1. 您的 xml 配置应该覆盖您在 mdb 代码中使用的注释
    2. 消息驱动的 bean 被池化。
    3. 容器可以根据需要部署任意数量的 mdb 来服务并发请求,
    4. 您可以在配置 xml 中为每个 mdb 配置池大小,或者,如果我没记错的话,可以使用服务器提供商的管理控制台(例如 WebLogic)

    【讨论】:

    • 我的 mdb 类 C 具有队列 1 的激活配置。ejb-jar 包含一个 标记,其中 C 作为 ejb 类和队列 2 的激活配置。当我用我的 C 类和 ejb-jar 部署我的耳朵,我的 jms 经纪人告诉我有两个消费者。一个用于队列 1,一个用于队列 2。我只想要队列 2 的消费者。
    【解决方案2】:

    据我了解,我最初的意图是不可能的。 对于 jboss,带注释的配置是一个 bean,部署描述符是第二个 bean。如果 xml 中不存在描述符,则描述符将与 bean 配置的某些方面合并,但消息驱动注释将保持有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多