EJB2和EJB3的Maven vanilla项目

时间:2012-12-09 15:10:05

标签: java java-ee jboss ejb ejb-3.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下载一个vanilla“Hello world”maven项目(那将在Jboss 5.1.x上运行),我真的很感激。

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

1 个答案:

答案 0 :(得分: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 depdencies实际上是一个很好的做法,因为这可以确保您的应用程序保持可移植性。

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