maven - 如何使用 TomEE maven 插件自动部署 EJB jar

标签 maven ejb apache-tomee

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

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

例如,this site指示需要在 server.xml 中定义的 Web 上下文。我的同步设置与网站建议的相同。

mvn compile

命令只像往常一样编译源代码。

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

谢谢。

更新

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

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

最佳答案

我们使用 maven tomcat7 插件来完成这项工作。这是诀窍,因为 Apache TomEE 是 JEE6,您可以在 war 中部署 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>

...

关于maven - 如何使用 TomEE maven 插件自动部署 EJB jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18250519/

相关文章:

maven - 禁用maven下载进度指示

java - EJB 避免非常长的事务(Wildfly)

mysql - WildFly 不保留 MySQL 中的存储过程调用

java - DDL 生成和常规 persistence.xml 设置 (OpenJPA)

java - TomEE war 部署失败

java - Tomcat/TomEE 添加 "/localhost"到 servletContext.getResource ("myStaticFile")

java - 在 Maven/Spring Boot 项目中运行测试时出现 MojoFailureException (NoClassDefFounderror)

java - 使用 java 将 Artifact 部署到 Nexus

java - 程序定时器和自动定时器 - 区别

java - 在没有继承的情况下执行 Maven3 exec 插件