我有一个用EJB2.1编写的现有应用程序。这部署在jboss-5.1.0.GA上作为EAR。
我现在有了一个新的要求来实现一个应该由EJB2.1应用程序使用的进程。两者都将在他们自己的ear文件中,但都将在同一个jboss-5.1.0实例上运行。
我的问题是:
答案 0 :(得分:2)
EJB3规范允许平滑过渡,定义EJB2 / EJB3互操作性的方法,它有时很笨重,你需要在“普通”EJB3应用程序中不需要的工件(@RemoteHome
)
- 是否可以从EJB2.1 ear调用EJB3 ear的服务?
是的,有可能,请参阅:Referencing EJB3 beans in EJB2.1和 Introduction to using EJB2.1 client adaptors 和示例项目“ejb21_client_adaptors”
- 如果上述答案是肯定的,是否可以管理交易?即只有EJB2.1应用程序提交任何事务。
是的,请记住使用@TransactionAttribute(TransactionAttributeType.MANDATORY)
- 将从EJB2应用程序中的会话bean调用EJB3服务。这是错误的方法吗? (即会话bean不是客户端)。
我认为这里没有问题,会话bean可以调用其他bean的服务。