将 Java EE Wildfly REST 应用程序部署到 Openshift

Deploy Java EE Wildfly REST Application to Openshift

我是 Openshift 的新手,在将我的 Java EE 项目部署到它时遇到了问题。我为一个简单的网上商店制作了 REST API。在本地,它在 Wildfly 9.0.2 上运行良好我想将它部署在 openshift 上。我已经使用 eclipse openshit jboss 插件制作了新的 wildfly9 + mysql5.5 应用程序,并向 root pom.xml:

添加了一个配置文件

<配置文件> <个人资料> <id>开班</id> <构建> <finalName>网上商店</finalName> <插件> <插件> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-插件</artifactId> <版本>2.3</版本> <配置> <failOnMissingWebXml>假</failOnMissingWebXml> <outputDirectory>部署</outputDirectory> </配置><br> </插件> </插件> </构建> </个人资料> </个人资料>

我的根项目由几个 maven 模块组成,包括 store-ear (EAR)、store-jpa (JAR)、store-rest (WAR)、store-web (WAR)、商店服务 (EJB)、商店休息接口 (JAR)、商店服务接口 (JAR)。 我已更改 JPA 配置 (persistence.xml) 中的数据源以在 Openshift 上使用 MysqlDB。 推回 openshift 后,构建成功,但在部署时缺少一些依赖项 (ClassNotFoundException),并且无法部署主 war 文件。

您在 openshift maven 配置文件中使用了 maven-war 插件。 但是你说你的项目打包成en ear。因此,您可能应该部署包含所有项目模块(wars、ejbs、libs...)的 ear,而不是项目的特定 war。

要实现这一点,您必须使用 maven-ear 插件而不是 maven-war 插件您的 openshift 配置文件如下所示:

<profile>
 <id>openshift</id>
 <build>
    <plugins>
       <plugin>
          <artifactId>maven-ear-plugin</artifactId>
          <version>2.10</version>
          <configuration>
             <outputDirectory>deployments</outputDirectory>
          </configuration>
       </plugin>
    </plugins>
 </build>
</profile>