3

我有一个打包在 jar 文件中的无状态 EJB SOAP Web 服务。

当应用程序仅包含一个 EJB jar 文件时,是否可以使用 Tomee maven 插件设置自动部署?

例如,此站点表明需要在 server.xml 中定义的 Web 上下文。我的同步设置与网站建议的相同。

mvn compile

command 除了像往常一样编译源代码之外什么都不做。

是否有可能使用 EJB jar 设置类似的东西,或者在任何情况下都需要 WAR 包?

谢谢。

更新

为了让 TomEE Maven 插件完全可以处理 jar 文件,我在 pom.xml 配置部分添加了以下内容

<apps>
  <app>my.group:my-ejb-app:1.0:jar</app>
</apps>
4

1 回答 1

1

我们使用 maven tomcat7 插件来做到这一点。这是诀窍,因为 Apache TomEE 是 JEE6,您可以在战争中部署 EJB。

所以有两种方法可以做你想做的事……第一,跳过你的应用程序的 Jar 打包,让你的 EJB 成为 WAR。如果这听起来不吸引人,另一种方法是创建一个单独的项目,它是一个 WAR,但将您的 EJB jar 作为依赖项拉入。

无论哪种情况,您都可以使用 tomcat7 插件将您的项目轻松部署到 Apache TomEE,mvn tomcat7:deploy只要您正确填写 pom 的服务器部分。例子:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <configuration>
                <server>crabs</server>
                <url>http://crabs/manager/text</url>
                <path>/${project.artifactId}</path>
                <update>true</update>
            </configuration>
        </plugin>
    </plugins>
</build>

确保您在服务器上的 tomcat-users.xml 中有一个用户,该用户对 manager-text 具有适当的部署权限。此外,将服务器配置放入 ~/.m2/settings.xml:

...
<servers>
    <server>
        <id>crabs</id>
        <username>deploy</username>
        <password>your password</password>
    </server>

...

于 2014-04-16T15:05:09.480 回答