我有一个在Openshift上运行的应用程序。它可以正常工作,但是测试很困难,因为我必须将所有小东西都推到openshift上,并等待所有建筑物并重新启动以查看更改。
因此,我试图找到一种在本地测试应用程序的方法。另一个人在这里问了同样的事情:如何在本地主机上测试openshift应用程序],但我想知道是否存在更简单的解决方案。
我使用了http://github.com/openshift/spring- eap6-quickstart.git上的quickstart项目来启动它。因此,基本上它是使用Hibernate的Spring应用程序。
我想到的是在项目中有两组配置文件(persistence.xml等),一组用于本地Tomcat服务器,另一组用于Jboss eap,并web.xml根据要部署到的服务器进行更改。这可行吗?看起来很简单,在更改项目之前,我担心会遇到任何意外问题。
persistence.xml
web.xml
这就是我最终做的方式。我将原始web.xml文件重命名为web-openshift.xml。在OpenShift中构建项目时,将使用maven openshift配置文件。您可以<profiles>在pom.xml 的部分中找到它。所以我给我添加了一行pom.xml:
web-openshift.xml
openshift
<profiles>
pom.xml
<build> <plugins> <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> .... <webXml>src/main/webapp/WEB-INF/web-openshift.xml</webXml> <!--add this-->
这使得在构建战争时maven-war-plugin将web- openshift.xml文件用作Web部署描述符。然后我添加了一个web.xml文件,该文件将用于本地构建。在这些文件中,您可以通过以下方式配置servlet:
maven-war-plugin
web- openshift.xml
<init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/jboss-as-spring-mvc-context.xml</param-value>
因此,通过更改<param-value>两个web.xml文件中的,我能够以不同的方式配置Spring和Hibernate。
<param-value>
然后,我添加标记为jar<provided>在pom.xml到\lib我的Tomcat的安装目录。现在,我能够将应用程序部署并运行到OpenShift和Tomcat。
<provided>
\lib