我有一個服務(接口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. –