2 EAR

时间:2016-02-17 15:55:13

标签: java java-ee ejb ejb-3.1 ear

我是EJB中的新手,我需要了解" ejb pool"工作以及如何在EARS之间共享。

我们在WebSphere 8.5上部署了一个EAR(名为" ear1" )。此EAR包含业务逻辑用于访问DB的一些无状态EJB3( test.Ejb1,test.Ejb2,test.Ejb3 )(使用" SQL-DB-datasource1&# 34;
我们需要构建一个新的EAR(名为" ear2" )并将其部署在同一个websphere中,但引用一个新的数据源(" SQL-DB- datasource2" )。

的问题:
1. EJB池是相同的并且在耳朵之间共享,对吧? 2.如果(错误)我在两个EAR中使用相同的包和相同的EJB名称( test.Ejb1,test.Ejb2,test.Ejb3 ),我冒险" ejb冲突"当我将这些EJB引入休息服务时,两个EARS之间?
3.或者每个EAR都有自己的背景"在EJB池中? 4." ear2"可以访问" ear1"?中定义的EJB 5.取决于我如何进行" EJB查找"?
谢谢!

1 个答案:

答案 0 :(得分:0)

  1. 不,每个EJB都有自己的池。
  2. 不,每个应用程序都由一个不同的类加载器加载(默认情况下),这意味着没有冲突的风险,只有潜在的混淆风险。
  3. 如果EJB具有远程接口,则为是。是的,但如果EJB具有本地接口,则需要注意;查看"本地客户端视图"知识中心中EJB modules主题的一部分。
  4. 是的,您需要使用查找字符串。 EJB容器将在应用程序启动时打印CNTR0167I消息,这将为您提供查找字符串。我建议将java:global查找字符串与EJB引用(@EJB注释或<ejb-ref> / <ejb-local-ref> XML元素一起使用)。