0

我有一个需求,我有两个开发两个项目,一个使用 EJB2.1,一个使用 EJB3.x。EJB2.1 将是现有项目的扩展,因此它是 v2.1 并且还不能迁移到 3.x。

这两个项目都必须使用 Maven 构建,这就是我苦苦挣扎的地方。信不信由你,过去 3 天我一直在试图找到一个使用 Maven 构建的无状态 EJB 项目的简单示例,但没有运气。

这是我通过谷歌搜索找到的几个指针,但它们都不起作用。

  • 使用 Eclipse 创建项目

Eclipse 允许您创建 EJB3 项目。最新版本不允许您创建 EJB2 项目。此外,您不能创建 Maven EJB 项目。

  • 使用 Maven 原型。

我在 Maven 中尝试了以下原型,但它们都不起作用

ejb2-j2ee13
ejb2-j2ee14
ejb-javaee6
ejb-jee5
ear-jee5
ejb-jee5

上述原型仅适用于 EJB3 或那些适用于 v2.x 的原型,将会缺少一些依赖项。

  • Jboss 示例项目

我还在 Jboss 文档http://anonsvn.jboss.org/repos/jbossas/projects/ejb3/trunk/docs/tutorial/reference21_30/上找到了以下教程。我打算在 Jboss v5.1 上使用 EJB。此 URL 上的项目是 Maven 项目,但它们也抱怨缺少依赖项(ant 构建确实有效)。

如果有人能指出我可以在哪里下载适用于 EJB2.x 和 EJB3.x 的香草“Hello world”maven 项目(这将在 Jboss 5.1.x 上运行),我将不胜感激。

我在谷歌上花了这么多时间,最后决定在这里问,因为我无处可去。我怀疑他们可能很难找到这些依赖项,因为他们不希望人们再使用 EJB2.x。问题是有些人别无选择。

4

1 回答 1

1

你真的不需要 Java EE5 的原型,或者 JEE6 的样板代码太少了,你只需要一个常规的 java 原型并添加对

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
</dependency>

或者

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>5.0</version>
    <scope>provided</scope>
</dependency>

添加你的 beans.xml,你就完成了。避免任何 JBoss 依赖实际上是一种很好的做法,因为这可以确保您的应用程序保持可移植性。

注意:如果要模拟或使用相应 javax.XXX 包中的任何类,则需要将应用程序服务器特定的依赖项包含到 maven 测试范围中。这是因为 Sun/Oracle 更改了 API jar 的字节码,以保证没有人意外使用这些类,而不是服务器提供的类。

于 2012-12-09T15:19:44.077 回答