在本地测试spring openshift应用程序

lun*_*unr 6 java jboss spring tomcat openshift

我有一个在Openshift上运行的应用程序.它工作正常,但测试很困难,因为我必须将每个小东西推到openshift并等待所有构建并重新启动以查看更改.

所以我试图找到一种在本地测试应用程序的方法.另一个人在这里问了同样的事情:如何在本地主机上测试openshift应用程序,但我想知道是否存在更简单的解决方案.

我在这里使用了quickstart项目http://github.com/openshift/spring-eap6-quickstart.git来启动它.所以基本上它是一个使用Hibernate的Spring应用程序.

我想到的是在项目中有两组配置文件(persistence.xml等),一组用于本地Tomcat服务器,另一组用于Jboss eap,并web.xml根据我想部署的服务器进行更改.这可行吗?看起来很简单,在改变项目之前我害怕任何惊喜问题.

lun*_*unr 3

这就是我最终所做的。我将原始web.xml文件重命名为web-openshift.xml. 在 OpenShift 中构建项目时,openshift将使用 Maven 配置文件。您可以在 pom.xml 的您的部分中找到它<profiles>。所以我在我的中添加了一行pom.xml

<build>
  <plugins>
    <plugin>
      <artifactId>maven-war-plugin</artifactId>
         <configuration>
         ....
           <webXml>src/main/webapp/WEB-INF/web-openshift.xml</webXml>  <!--add this-->  
Run Code Online (Sandbox Code Playgroud)

这使得在构建 war 时maven-war-plugin可以使用该文件作为 Web 部署描述符。web-openshift.xml然后我添加了一个web.xml文件,它将用于我的本地构建。在这些文件中,您可以使用以下内容配置 servlet:

<init-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>/WEB-INF/jboss-as-spring-mvc-context.xml</param-value>
Run Code Online (Sandbox Code Playgroud)

因此,通过更改<param-value>两个web.xml文件中的 ,我能够以不同的方式配置 Spring 和 Hibernate。

然后我将标记为 的 jar 添加到Tomcat 安装目录<provided>中。现在我可以在 OpenShift 和 Tomcat 上部署并运行该应用程序。pom.xml\lib