有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在本地测试SpringOpenShift应用程序

我有一个在Openshift上运行的应用程序。它工作得很好,但是测试很困难,因为我必须把每一件小事都推到openshift上,然后等待所有的构建和重新启动来查看更改

因此,我试图找到一种在本地测试应用程序的方法。 另一个人在这里问了同样的问题:How to test an openshift application on local host,但我想知道是否存在更简单的解决方案

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

我想在项目中有两组配置文件(persistence.xml等),一个用于本地Tomcat服务器,一个用于Jboss eap和 根据要部署到的服务器更改web.xml。这可行吗?看起来很简单,我担心在更改前会出现任何意外问题 项目


共 (3) 个答案

  1. # 1 楼答案

    我就是这样结束的。我将原始的web.xml文件重命名为web-openshift.xml。在OpenShift中构建项目时,会使用maven openshift配置文件。你可以在pom的<profiles>部分找到它。xml。所以我在我的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在构建war时使用web-openshift.xml文件作为web部署描述符。然后我添加了一个web.xml文件,将用于本地构建。在这些文件中,您可以使用以下配置servlet:

    <init-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>/WEB-INF/jboss-as-spring-mvc-context.xml</param-value>
    

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

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

  2. # 2 楼答案

    在我在本地和Openshift上运行的一个应用程序中,我使用持久化应用程序根/数据文件夹来存储任何特定的Openshift配置

    在我的网上。xml,我包括以下属性:

    <context:property-placeholder location="file:${user.home}/app-root/data/configuration.properties"/>
    

    如果你在管理敏感的配置属性,比如用户名和密码,Openshift的环境变量可以发挥很大作用。例如,您可以在pom中放置以下属性。xml,在openshift配置文件下:

    <properties>
      <db.username>${env.OPENSHIFT_POSTGRESQL_DB_USERNAME}</db.username>
      <db.password>${env.OPENSHIFT_POSTGRESQL_DB_PASSWORD}</db.password>                    
      <db.connectionURL>postgresql://${env.OPENSHIFT_POSTGRESQL_DB_HOST}:5432/${env.PGDATABASE}</db.connectionURL>
    </properties>
    

    从Openshift环境变量检索数据库连接属性。然后可以使用maven的资源过滤将这些属性放入特定目录(如src/main/resources)中的任何文件中

    我自己的本地数据库连接属性在My ~/的配置文件中管理。m2/设置。xml文件

    这种方法使我能够:

    • 将所有敏感属性移出我的公共代码存储库
    • 通过启用/禁用maven构建概要文件,非常简单地在openshift和本地部署之间切换
  3. # 3 楼答案

    如果你有一个快速连接,你可以在本地服务器上运行你的应用程序,并让持久性。xml指向openshift数据库。要远程访问数据库,必须使用端口转发(https://www.openshift.com/blogs/getting-started-with-port-forwarding-on-openshift)。您需要设置rhc客户端(https://www.openshift.com/developers/rhc-client-tools-install),并运行rhc端口转发客户端来访问数据库。 然后,您可以在tomcat服务器上运行eclipse项目,它将(我假设您使用的是persistence.xml)连接到数据库。任何代码更改都将被视为其他tomcat项目。 没有必要有一个单独的网站。大多数情况下使用xml(除非您有一些特定于openshift的配置)

    如果你愿意,你甚至可以使用像Toad这样的工具来连接数据库