1

我在我的小 test-webapp 中面临另一个问题。我有一个 EJB 模块(通过 maven-pom 创建),它基本上包装了数据访问,所以它所做的只是将一些 DAO 实现为 Stateless-SessionBeans。我的域模型(带有 JPA2 注释的简单 POJO)位于另一个简单的 java 项目中,该项目将被打包为 jar 文件。

当我创建企业存档时,maven 只将 webapp 和 ejb-module 放入 application.xml 中,即使我手动更改它,ejb-module 在部署时也无法从域模块中找到类

我读到一些关于 ejb 必须将其所有依赖的 jars 放在它自己的存档中的东西,但我不敢相信,因为这个域模块也被其他项目使用。

我将如何打包它(或在 maven 中设置它)以便我的 ejb 可以从外部 jar 加载类?

谢谢

4

1 回答 1

1

如果我没记错的话,只需在您的 EJB-JAR 中生成一个带有 Class-Path 条目的清单:

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-ejb-plugin</artifactId>
    <configuration>
      <ejbVersion>3.0</ejbVersion>
      <archive>
        <manifest>
          <addClasspath>true</addClasspath>
        </manifest>
      </archive>
    </configuration>
  </plugin>
  ...
</plugins>

并将您的外部罐子添加到 EAR。为此,请jarModuleMaven EAR 插件配置中声明它们。请参阅模块配置

于 2010-01-12T17:01:29.687 回答