0

同じGrailsアプリケーションをTomcatに2回デプロイすると(つまり、myApplication_first.war、myApplication_second.war)、TomcatはWARファイルをデプロイできず、再現可能です。クラスXYZがすでにTEMPフォルダーに存在していると文句を言います(これは、以前の展開のために当てはまります)。したがって、グローバルなTomcat TEMPフォルダーを変更しても、どちらのプロジェクトも同じフォルダーを再び使用するため、意味がありません。

私は一般に、アプリケーションを2回デプロイする方法を知っていますが、Grailsのコンテキストでは、それ自体ですでに多くのものを管理しているため、そうではありません。

この計画を実現する方法はありますか?

Grailsバージョン1.3.7を使用します。

私は考えられる解決策をたくさん探しましたが、どれも私のニーズに合いませんでした。

  • 複数のTomcatインスタンスにデプロイする
  • 1つのアプリケーションのみをデプロイし、いくつかの一意の識別子を使用して、個々のデータソースなどを提供するための必須/クライアントを識別します。(同じアプリケーションをtomcatに複数回デプロイするを参照してください)
  • Tomcatを別のアプリケーションサーバーに置き換えます

私の頭に浮かんだアプローチの1つは、まだ少し奇妙に思えますが、デプロイメント中にすべてのクラスのパッケージをその場で変更することです(ANTまたはそのようなs.th.を使用)。それらがTomcatTEMPフォルダーで衝突できないようにします。これは潜在的に解決策になる可能性がありますか?エレガントな方法でさえ可能ですか?

よろしく、クリストファー

4

3 に答える 3

0

tomcat マネージャー アプリケーションをチェックアウトします。問題を解決する可能性のあるリロード オプションがあります。

一部の企業では、マネージャー (Tomcat ディストリビューションに付属する追加の Web アプリケーション) を無効にしています。私はセキュリティ上の懸念を理解していますが、これは解決策になる可能性があり、マネージャーは間違いなくアプリの展開を簡素化します.

于 2012-07-09T21:53:12.873 に答える
0

2 つのほぼ同一の grails 1.3.7 アプリケーションを同じ tomcat 7 インスタンスに問題なくデプロイできました。2 番目のアプリは、基本的に最初のアプリのクローンで、いくつかのソース ファイルにわずかな変更を加えただけです。各アプリには異なる WAR 名があり (既に実行しているようです)、Config.groovy 内の grails.app.context がアプリごとに異なるようにしました。Tomcat の一部の以前のバージョンでは、WAR ファイル名のアンダースコアに問題があったと思いますが、最近のバージョンでも問題があるかどうかはわかりません。アンダースコアなしで別の WAR 名を使用し、一致するように grails.app.context を編集してみてください。

于 2012-07-09T18:32:25.893 に答える
0

私は同様の状況にあり、私の解決策は、アプリケーションを grails プラグインに「変換」してから、このプラグインを使用し、各アプリケーションで構成 (DataSource など) を適応させた (6 つあった) アプリケーションを作成することでした。最終的な WAR ファイルのほぼ 100% が同じであったとしても、正しく機能しました。

TomCat vhosting も試しましたか?

于 2012-07-09T13:22:35.877 に答える