1

我是 Openshift 的新手,在将我的 Java EE 项目部署到它时遇到了麻烦。我为一个简单的网上商店制作了 REST API。在本地,它在 Wildfly 9.0.2 上运行良好我想在 openshift 上部署它。我使用 eclipse openshit jboss 插件制作了新的 wildfly9 + mysql5.5 应用程序,并向根 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),存储服务接口(JAR)。我已更改 JPA 配置 (persistence.xml) 中的数据源以在 Openshift 上使用 MysqlDB。推回 openshift 后,构建成功,但在部署时它缺少一些依赖项(ClassNotFoundException),并且无法部署主战争文件。

4

1 回答 1

0

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

为此,您必须在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>
于 2016-02-04T21:42:02.613 回答