在我目前工作的项目中,我们有大约20个不同的EJB 2 JAR,用于多个(Swing-)客户端。
示例:
customer-1.0.0.jar
^ ^
| |
client-app-1 client-app-2
这些不同的客户端应用程序具有不同的发布周期,因此它们通常需要不同版本的相同EJB。同时部署这些bean当然不起作用,因为它们具有相同的JNDI名称。由于我对EJB 3很有经验,我认为在每个应用程序EAR中部署EJB 2 bean可以解决问题,因为EJB 3 bean中使用了EAR JNDI名称空间(例如client-app-1 / CustomerBean,client-app- 2 / CustomerBean等)。但是,对于EJB 2来说似乎并非如此。
现在,有没有办法为EJB 2 JNDI名称加上它们打包的EAR的名称空间?我知道将这些(遗留)bean迁移到EJB 3是一个答案,但我们目前没有时间这样做。
如果答案取决于应用程序服务器:我们使用的是JBoss 4.2.3.GA。