我有一个服务(接口ParameterService
)与一个EJB(@Stateless
和@Remote
)实现(ParameterServiceImpl
)。至于它的功能:它使用在运行时发现的ParameterProvider
实现来解析参数(在BeanManager
中的CDI查找)。使用EJB本地以及远程
该EJB部署在两个耳光:
-
在
第一EAR
- ,则EJB只本地使用。 EAR附带使用数据库读/写参数的
ParameterProvider
实现。在第二EAR - ,所述EJB则使用本地(可以使用可用
ParameterProvider
s,这从属性文件或系统属性读解决本地参数)。它也是也用于远程,在RemoteParameterProvider
内,它将参数读/写委托给第一个EAR中的远程EJB。
我正在努力与第二个EAR,因为它不解决远程EJB。 当我注入(用于测试)EJB的如下:
@EJB
private ParameterService localParameterService;
@EJB(lookup = "java:global/commons/parameter-service/ParameterService")
private ParameterService remoteParameterService;
...的localParameterService
可用:
代理远程EJB StatelessEJBLocator {APPNAME = '移动', MODULENAME =”移动管理员战”,distinctName = '', beanName = 'ParameterServiceImpl',视图= '接口[...]。ParameterService'}
而remoteParameterService
是null
。没有例外被抛出或记录,我检查了JNDI名称,它是正确的。
我的方法有问题(在本地和远程使用EJB),还是我错过了一些东西?
EDIT:接口和类注释:
public interface ParameterService { ... }
@Stateless
@Remote(ParameterService .class)
public class ParameterServiceImpl implements ParameterService { }
实现和接口是简单的,我将它们添加到问题中。该实现没有字段,只是简单的方法)。至于服务器,这是蜻蜓8. –