【问题标题】:Calling an EJB3 library from an EJB2 library从 EJB2 库调用 EJB3 库
【发布时间】:2012-12-04 20:45:35
【问题描述】:

我有一个用 EJB2.1 编写的现有应用程序。它作为 EAR 部署在 jboss-5.1.0.GA 上。

我现在有一个新的需求来实现应该由 EJB2.1 应用程序使用的流程。两者都在自己的 ear 文件中,但都在同一个 jboss-5.1.0 实例上运行。

我的问题是:

  • 是否可以从 EJB2.1 耳朵调用 EJB3 耳朵的服务?
  • 如果上面的答案是肯定的,是否可以管理交易?即只有 EJB2.1 应用程序提交任何事务。
  • 将现有的 2.1 应用程序迁移到 v3 是不可能的。将新流程创建为 v3 是否值得努力,或者我可能会遇到两者之间的集成问题?
  • 我一直在寻找一个简单的 hello world 类型示例来演示上述内容,但没有找到。有人知道一个很好的例子吗?
  • 将从 EJB2 应用程序中的会话 bean 调用 EJB3 服务。这是错误的方法吗? (即会话 bean 不是客户端)。

【问题讨论】:

标签: java jakarta-ee ejb ejb-3.0


【解决方案1】:

EJB3 规范允许平滑过渡,定义了 EJB2/EJB3 互操作性的方法,它有时很庞大,您需要在“普通”EJB3 应用程序中不需要的工件 (@RemoteHome)

  • 是否可以从 EJB2.1 耳朵调用 EJB3 耳朵的服务?

是的,有可能,请参阅:Referencing EJB3 beans in EJB2.1Introduction to using EJB2.1 client adaptors 和示例项目“ejb21_client_adaptors”

  • 如果上面的答案是肯定的,是否可以管理交易?即只有 EJB2.1 应用程序提交任何事务。

是的,只要记住用 @TransactionAttribute(TransactionAttributeType.MANDATORY) 注释您的 EJB3 方法

  • 将从 EJB2 应用程序中的会话 bean 调用 EJB3 服务。这是错误的方法吗? (即会话 bean 不是客户端)。

我看这里没问题,会话 bean 可以调用其他 bean 的服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多