3

我有一个用 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 类型示例来演示上述内容,但找不到任何内容。有人知道一个很好的例子吗?
  • EJB3 服务将从 EJB2 应用程序中的会话 bean 中调用。这是错误的方法吗?(即会话 bean 不是客户端)。
4

1 回答 1

2

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

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

是的,有可能,请参阅:Referenceing EJB3 beans in EJB2.1 and Introduction to using EJB2.1 client adapters and the sample project "ejb21_client_adaptors"

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

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

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

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

于 2012-12-05T09:32:30.240 回答