单个EAR中的多个EJB

时间:2014-04-16 19:10:14

标签: java java-ee

我有一个像这样的目录结构

- 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。

1 个答案:

答案 0 :(得分:1)

您需要确保您的EJB项目依赖于它需要接口的其他EJB项目。因此,例如,如果类X依赖于接口Y,则需要确保EJB1具有对EJB2的引用。这是在NetBeans中的项目的库设置中配置的。

如果您发现EJB1调用EJB2和EJB 2调用EJB1,那么您需要将本地接口提取到您的EJB项目可能依赖的单独jar中,而不是依赖于EJB本身。