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

时间:2016-02-04 17:46:04

标签: maven java-ee openshift wildfly-9

我是Openshift的新手,无法将Java EE项目部署到它。我为一个简单的webstore制作了REST API。本地它在Wildfly 9.0.2上工作正常我想在openshift上部署它。我使用eclipse openshit jboss插件创建了新的wildfly9 + mysql5.5应用程序,并为root pom.xml添加了一个配置文件:

<profiles> <profile> <id>openshift</id> <build> <finalName>webstore</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.3</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> <outputDirectory>deployments</outputDirectory> </configuration>
</plugin> </plugins> </build> </profile> </profiles>

我的根项目由几个maven模块组成,包括store-ear(EAR),store-jpa(JAR),store-rest(WAR),store-web(WAR),store-services(EJB),store-rest -interfaces(JAR),store-service-interfaces(JAR)。 我在JPA配置(persistence.xml)中更改了数据,以便在Openshift上使用MysqlDB。 在推回到openshift后,构建成功,但是当它部署时,它缺少一些依赖(ClassNotFoundException),并且无法部署主war文件。

1 个答案:

答案 0 :(得分:0)

您在 openshift maven个人资料中使用 maven-war 插件。 但是你说你的项目是打包的。所以你应该部署这个包含所有项目模块(war,ejbs,libs ......)的耳朵,而不是你项目的特定战争。

要实现这一点,您必须在 openshift 配置文件中使用 maven-ear 插件而不是 maven-war 插件看起来像这样:

<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>