6

Openshift でアプリケーションを実行しています。正常に動作しますが、すべての小さなものを openshift にプッシュし、すべてのビルドと再起動を待って変更を確認する必要があるため、テストは困難です。

そのため、アプリケーションをローカルでテストする方法を見つけようとしています。別の人がここで同じことを尋ねました: How to test an openshift application on local host , しかし、より簡単な解決策が存在するかどうか疑問に思っています.

ここでクイックスタート プロジェクトhttp://github.com/openshift/spring-eap6-quickstart.gitを使用して開始しました。つまり、基本的には Hibernate を使用した Spring アプリケーションです。

プロジェクトに2セットの構成ファイル(persistence.xmlなど)を用意することを念頭に置いています。1つはローカルTomcatサーバー用、もう1つはJboss eap用で、web.xmlデプロイ先のサーバーに応じて変更します。これは実行可能ですか?とてもシンプルに見えますが、プロジェクトを変更する前に予期せぬ問題が発生するのではないかと心配しています。

4

3 に答える 3

3

これが私がやった方法です。元のweb.xmlファイルの名前をweb-openshift.xml. プロジェクトが OpenShift でビルドされる場合、mavenopenshiftプロファイルが使用されます。<profiles>pom.xml のセクションで見つけることができます。だから私は私のに行を追加しましたpom.xml:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-war-plugin</artifactId>
         <configuration>
         ....
           <webXml>src/main/webapp/WEB-INF/web-openshift.xml</webXml>  <!--add this-->  

これにより、war をビルドするときにファイルを Web デプロイメント記述子としてmaven-war-plugin使用するようになります。web-openshift.xml次にweb.xml、ローカル ビルドに使用するファイルを追加しました。これらのファイルで、サーブレットを次のように構成します。

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

<param-value>そのため、2 つのファイルの を変更することで、 web.xmlSpring と Hibernate をさまざまな方法で構成できました。

次に、Tomcat インストールのディレクトリに<provided>inpom.xmlとマークされた jar を追加しました。\libこれで、アプリケーションを OpenShift と Tomcat の両方にデプロイして実行できるようになりました。

于 2013-04-22T22:36:10.437 に答える
0

接続が高速な場合は、アプリをローカル サーバーで実行し、persistence.xml が openshift db を指すようにすることができます。データベースにリモートでアクセスするには、ポート転送 ( 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を使用して、dbを使用していると仮定します)。コードの変更は、他の Tomcat プロジェクトと同様に扱われます。ほとんどの場合、別個の web.xml を用意する必要はありません (openshift 固有の構成がない限り)。

必要に応じて、Toad などのツールを使用してデータベースに接続することもできます。

于 2013-04-03T23:57:17.287 に答える