单EAR中的java多EJB
我有一个这样的目录结构
- EAR
- EJB 1
- Class X
- Class X Local Interface
- EJB 2
- Class Y
- Class Y Local Interface
EJB2是在以后添加的(通过右键单击EAR并选择“AddJavaEE模块”)
在Class X
中,我尝试定义Class Y Local Interface
,以便可以实例化一个Context lookup
,但编译器给出了错误cannot find symbol class YLocalInterface
private YLocalInterface yBean = lookupYLocalInterface(); //fails
整个项目结构是这样的
- EAR 1
- EJB 1
- Class X
- Class X Local Interface
- EJB 2
- Class Y
- Class Y Local Interface
- WAR 1
- EAR 2
- EJB 2
- Class Y
- Class Y Local Interface
- WAR 2
我已经将EJB2添加到EAR1中
# 1 楼答案
您需要确保您的EJB项目依赖于它需要接口的另一个EJB项目。因此,例如,如果类X依赖于接口Y,则需要确保EJB1引用了EJB2。这是在NetBeans中项目的库设置中配置的
如果您发现EJB1调用EJB2,EJB2调用EJB1,那么您需要将本地接口提取到一个单独的jar中,这样您的EJB项目就可以依赖它,而不是依赖于EJB本身