【问题标题】:Maven - how to create ejb client when packing warMaven - 打包战争时如何创建ejb客户端
【发布时间】:2015-07-15 19:22:52
【问题描述】:

我有一个 Eclipse 基础 ejb 项目,我刚刚将其转换为 maven 模块。它采用 Web 应用程序布局(Tomee 首选)。所以,在pom.xml中,打包类型设置为war,maven正确生成了war文件。但是我在让 maven 在打包战争时也创建一个 ejb-client jar 方面并不是很成功。我将此添加到 pom.xml 但它似乎没有做任何事情:

    <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ejb-plugin</artifactId>
            <version>2.5</version>
            <executions>
                <execution>
                    <id>BossClient</id>
                    <phase>compile</phase>
                    <configuration>
                        <ejbVersion>3.1</ejbVersion>
                        <generateClient>true</generateClient>
                        <clientIncludes>
                            <clientInclude>/com/**</clientInclude>
                        </clientIncludes>
                    </configuration>
                </execution>
            </executions>
        </plugin>
      </plugins>
    </build>

知道如何在打包战争时让 maven 生成 ejb-client 吗?

【问题讨论】:

    标签: maven-3


    【解决方案1】:

    maven-ejb-plugin的配置可以这样简化:

    <project>
       <groupId>..</groupId>
       <artifactId>..</artifactId>
    
       <packaging>ejb</packagin>
    
       <build>
         <pluginManagement>
           <plugins>
             <artifactId>maven-ejb-plugin</artifactId>
             <version>2.5.1</version>
             <configuration>
               <ejbVersion>3.1</ejbVersion>
               <generateClient>true</generateClient>
               <clientIncludes>
                 <clientInclude>/com/**</clientInclude>
               </clientIncludes>
             </configuration>
           </plugins>
         <pluginManagement>
       </build>
    ..
    </project>
    

    基于default life cycle binding,无需创建执行块,因为maven-ejb-plugin 已经是生命周期的一部分。所以只需要根据您的需要调整配置即可。

    此外,您应该考虑制作一个包含 ejb 部分的单独模块,并且您不应该将 war 和 ejb 部分组合在一个模块中。

    【讨论】:

    • 它已经是一个单独的模块,其中没有Web组件/代码。我将它创建为 web 模块,因为 Tomee 服务器似乎更喜欢它。我已经尝试将它创建为 ejb 并将其打包到耳朵中并将耳朵部署到 Tomee。它部署成功。但我无法让远程客户端连接到它。我可以让远程客户端与 ejb 服务器通信的一种方法是打包并将其部署为 webapp。
    • 是的,我好像是那个医生。如前所述,我能够以 webapp 和 ejb 的形式部署到 Tomee。但是当我进行远程客户端 ejb 调用时,只有 webapp 布局工作。这来自链接 ==> 继续阅读以了解有关将 EJB 打包到 WAR 文件中的更多信息...本文的其余部分告诉我如何将 ejb 部署为 webapp。
    【解决方案2】:

    在删除阶段并将 ejb 的目标添加到 maven-ejb-plugin 后,我能够让它工作。

                <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ejb-plugin</artifactId>
                <version>2.5</version>
                <executions>
                    <execution>
                        <id>BossClient</id>
                        <configuration>
                            <ejbVersion>3.1</ejbVersion>
                            <generateClient>true</generateClient>
                            <clientIncludes>
                                <clientInclude>/com/**</clientInclude>
                            </clientIncludes>
                        </configuration>
                        <goals>
                            <goal>ejb</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-06
      • 1970-01-01
      • 1970-01-01
      • 2016-09-07
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      相关资源
      最近更新 更多