我是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文件。
答案 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>