4

cloudfoundry にデプロイされた戦争アーカイブに webapp があります。アプリで使用されているライブラリ (" somelib.jar") の 1 つが別の開発者によって作成されています。

somelib.jar彼がいくつかの異なるバージョンのアプリをアップロードして、アプリの動作をテストする方法が欲しい. WEB-INF/libデプロイのディレクトリにアップロードされたjarを取得できました。また、jarファイルをに解凍することもできましたWEB-INF/classes。ただし、新しいバージョンの jar を使用することはできませんでした。この質問この質問で説明されているようなさまざまなハックを試してみましたが、うまくいきませんでした。

.class上記のディレクトリの実際のまたは.jarファイルを置き換えても、毎回、最初にロードされたクラス/jarがその後使用されます。

私が望むものを達成する簡単な方法はありますか?

注: 私は Tomcat (それが実行される場所) を制御できないため、Tomcat を構成したり、サーバーに変更を加えたりすることはできません。私は自分の war ファイルを制御しているだけなので、すべてをプログラムで行う必要があります

編集: これが必要な理由は、テスト時間を短縮するためです。現在、誰かが の新しいバージョンをくれたsomelib.jarので、それをアプリケーションに再パッケージし、CF にアップロードし、彼に通知を送信してから、新しい jar の動作をテストしています。私が望んでいたのは、彼が自分の jar を CF に直接アップロードし、新しいバージョンを入手するたびに不必要な中間遅延なしでテストを行うことです。

4

3 に答える 3

2

アプリケーション サーバーを自分で制御するには、スタンドアロン アプリを Cloud Foundry にデプロイする必要があります。

このブログはそれを助けるはずです:

http://blog.cloudfoundry.com/2012/05/11/running-standalone-web-applications-on-cloud-foundry/

このようにして、Tomcat をカスタム構成できます。

于 2013-02-27T21:59:35.770 に答える
2

上記のディレクトリにある実際の .class または .jar ファイルを置き換えても、毎回、最初にロードされたクラス/jar がその後使用されます。

これが、通常の Tomcat (Java EE)クラスローディングの仕組みです。クラスは最初にデプロイされたときにロードされ、変更は無視されます (JSP の管理は少し異なりますが、開発環境でのみ行われます)。

この問題は、Equinox OSGi ブリッジ サーブレットを使用して解決できるはずです。私はこれを自分でやったわけではありませんが、これはが尊敬する人による記事です.

于 2013-02-27T19:33:56.103 に答える
2

tomcat 7 では、WAR ファイルをバージョン管理することができ、新しいバージョンが徐々に有効になります。

http://www.tomcatexpert.com/blog/2011/05/31/parallel-deployment-tomcat-7

于 2013-02-27T19:07:45.977 に答える