2016-02-04 160 views
1

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

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

我的根项目包含几个行家模块,包括商店耳(EAR) ,store-jpa(JAR),store-rest(WAR),store-web(WAR),store-services(EJB),store-rest-interfaces(JAR),store-service-interfaces(JAR)。 我已经改变JPA配置(persistence.xml)中的datasourse在Openshift上使用MysqlDB。 推回到openshift构建成功,但是当它被部署时它缺少一些依赖(ClassNotFoundException),并且无法部署主要的war文件。

+0

听起来像是你有运行时依赖关系已经成功地将它放到你的本地maven仓库中,但是在你的构建中没有被正确引用(pom.xml文件?)。不知道更多,很难提出更多的建议。 –

回答

0

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

要做到这一点,你必须使用一个行家耳插件代替Maven的战争一个在你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> 
+0

这解决了我的问题。 – janerz6