我有一个像这样的目录结构
- EAR
- EJB 1
- Class X
- Class X Local Interface
- EJB 2
- Class Y
- Class Y Local Interface
稍后添加了EJB 2(通过右键单击EAR并选择“添加Java EE模块”)
在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
我已将EJB 2添加到EAR 1。
答案 0 :(得分:1)
您需要确保您的EJB项目依赖于它需要接口的其他EJB项目。因此,例如,如果类X依赖于接口Y,则需要确保EJB1具有对EJB2的引用。这是在NetBeans中的项目的库设置中配置的。
如果您发现EJB1调用EJB2和EJB 2调用EJB1,那么您需要将本地接口提取到您的EJB项目可能依赖的单独jar中,而不是依赖于EJB本身。