使用EJB本地以及远程

时间:2016-07-05 13:44:41

标签: java-ee ejb-3.1

我有一个带有EJB(ParameterService@Stateless)实现(@Remote)的服务(接口ParameterServiceImpl)。至于它的作用:它使用ParameterProvider实现来解析参数,这些实现是在运行时发现的(BeanManager中的CDI查找)。

此EJB部署在两个EAR中:

    第一个EAR 中, EJB仅在本地使用。 EAR附带ParameterProvider实现,使用数据库读/写参数。 第二个EAR 中, EJB使用本地(可以使用可用的ParameterProvider来解析本地参数,这些参数从属性文件或系统属性中读取)。在<{1}}内,也远程使用,它在第一个EAR中委托对远程EJB的参数读/写。

我正在努力使用第二个EAR,因为它无法解析远程EJB。 当我按如下方式注入(测试)EJB时:

RemoteParameterProvider

... @EJB private ParameterService localParameterService; @EJB(lookup = "java:global/commons/parameter-service/ParameterService") private ParameterService remoteParameterService; 可用:

  

远程EJB StatelessEJBLocator的代理{appName ='mobile',   moduleName ='mobile-admin-war',distinctName ='',   beanName ='ParameterServiceImpl',view ='interface [...]。ParameterService'}

localParameterServiceremoteParameterService。没有抛出或记录异常,我检查了JNDI名称,这是正确的。

我的方法是否有问题(在本地和远程使用EJB),或者我错过了什么?

编辑接口和类注释:

null

2 个答案:

答案 0 :(得分:0)

我认为注射混淆了。 您的ParameterService实现和接口如何? 你使用什么服务器?

答案 1 :(得分:0)

你们大部分都以不同的方式部署,或者他们将共享相同的JVM实例,而ParameterServiceImpl将永远是本地的。