我有一个用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不是客户端)。
  • 最佳答案

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


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


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


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


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


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


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

    10-06 07:22