如何使用外部域jar包装EJB3

时间:2010-01-12 13:42:26

标签: java maven-2 ejb-3.0 packaging pojo

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

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

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

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

感谢

1 个答案:

答案 0 :(得分: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。为此,请在jarModule配置中将其声明为Maven EAR plugin。请参阅modules configuration