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
根据我想部署的服务器进行更改.这可行吗?看起来很简单,在改变项目之前我害怕任何惊喜问题.
这就是我最终所做的。我将原始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