bre*_*ish 3 java jboss intellij-idea java-ee-6 ejb-3.1
我正在开发一个简单的应用程序,其中一个EJB应该注入另一个.我在IDEA Jetbrains IDE中开发.但是在我在Ejb本地statless类中创建@EJB注释后,我的IDE突出显示错误:找不到组件接口'ApplicationController'的EJB''.
有谁能说出为什么?
Pas*_*ent 13
可以使用@EJB
注释将EJB引用注入另一个EJB .以下是从OpenEJB文档中注入其他EJB示例的示例:
代码
在这个例子中,我们开发了两个简单的会话无状态bean(DataReader和DataStore),并展示了如何在其中一个bean中使用@EJB注释来获取对其他会话bean的引用
DataStore会话bean
豆
Run Code Online (Sandbox Code Playgroud)@Stateless public class DataStoreImpl implements DataStoreLocal, DataStoreRemote{ public String getData() { return "42"; } }
本地业务接口
Run Code Online (Sandbox Code Playgroud)@Local public interface DataStoreLocal { public String getData(); }
远程业务接口
Run Code Online (Sandbox Code Playgroud)@Remote public interface DataStoreRemote { public String getData(); }
DataReader会话bean
豆
Run Code Online (Sandbox Code Playgroud)@Stateless public class DataReaderImpl implements DataReaderLocal, DataReaderRemote { @EJB private DataStoreRemote dataStoreRemote; @EJB private DataStoreLocal dataStoreLocal; public String readDataFromLocalStore() { return "LOCAL:"+dataStoreLocal.getData(); } public String readDataFromRemoteStore() { return "REMOTE:"+dataStoreRemote.getData(); } }
请注意
@EJB
DataStoreRemote和DataStoreLocal字段上注释的用法.这是EJB ref解析所需的最低要求.如果您有两个实现相同业务接口的bean,则需要beanName属性,如下所示:Run Code Online (Sandbox Code Playgroud)@EJB(beanName = "DataStoreImpl") private DataStoreRemote dataStoreRemote; @EJB(beanName = "DataStoreImpl") private DataStoreLocal dataStoreLocal;
本地业务接口
Run Code Online (Sandbox Code Playgroud)@Local public interface DataReaderLocal { public String readDataFromLocalStore(); public String readDataFromRemoteStore(); }
(为简洁起见,未显示远程业务接口).
如果它没有按预期工作,可能会显示一些代码.
归档时间: |
|
查看次数: |
14161 次 |
最近记录: |