13

ワークスペース内のプロジェクトのディレクトリから直接サービスを提供するように Tomcat を構成する理想的な方法は何ですか? (関連)

静的 Web リソースに変更を加えるたびに、それらを別のディレクトリに公開しなくてもすぐに利用できるようにしたいと考えています。これを達成するための最良の方法は、公開/デプロイされたファイルのコピーではなく、ファイルを直接提供することです。


あるいは、Java Web アプリケーションの開発を大幅に高速化する他のオプション (さまざまなアプリケーション サーバーまたは IDE) にもオープンです。小さな変更ごとに公開して再展開するのは、時間がかかりすぎます。

私は JRebel と FileSync を試しました (両方ともある程度動作します) が、存在しないはずの問題にパッチを当てようとします。

4

9 に答える 9

9

私は、Eclipse にバンドルされている WTP プラグインがあまり好きではありませんでした。

過去に、Eclipse 用のSysdeo Tomcat プラグインで多くの成功を収めました。

Eclipse がビルドするコンパイル済みクラスを使用するため、インターフェイス互換の変更 (メソッド内の一部の変更など) を行うと、再起動を必要とせずにすぐにデプロイされます。メソッド シグネチャを変更したり、クラス内に新しいメソッドを追加したりするには、再起動が必要ですが、長い WAR ビルド ステップがないため、ビルド/デプロイ サイクル全体が短縮されます。

さらに、Sysdeo プラグインはワークスペースの静的アセットを使用するため、これらをコピーまたはデプロイする必要はありません。変更を加えてブラウザを更新するだけで、変更がすぐに表示されます。

残念ながら、プラグインの開発は数年前に停止したようです。Web サイトのマトリックスによると、サポートされている Eclipse の最新バージョンは 3.6 です。ただし、このページによると、プラグインは Eclipse 4.2 (Juno) でも動作します。

お役に立てれば。Sysdeo の使用は、WTP よりもはるかに優れたエクスペリエンスです。

于 2013-07-03T14:36:40.360 に答える
2

Tomcat で Eclipse WTP アプローチを使用しているか、カスタムのデプロイ戦略を使用しているかは不明です。

変更された JAR の再発行が信頼できないため、Eclipse で Tomcat を実行するのをやめました。現在、Run Jetty Run Eclipse プラグイン (Eclipse Marketplace で入手可能) を介して Jetty を使用しています。これはワークスペースから実行されているように見え、Eclipse が Tomcat で使用するデプロイ ディレクトリへの再発行アプローチを実行しません。

このオプションでは動的コードのリロードは行われませんが、JRebel を使用してその機能を追加できます。

さらに左側のフィールドに進み、次のような再発行/再起動せずに変更を即座に表示できるようにする JVM 言語/フレームワークに切り替えます。

  • Play 2 (Scala と Java)
  • Grails (グルーヴィー)
  • Vert.X (さまざまな JVM 言語)。
于 2013-07-03T13:01:06.553 に答える
1

これは、[公開] をクリックするなどの何らかのアクションを実行することに反対するか、それとも透過的であってもコピーが行われることに反対するかによって異なります。Tomcat のサーバー構成で [発行] の下の [リソースが変更されたときに自動的に発行] が選択されていると仮定すると、CSS、HTML、または JavaScript などの静的コンテンツは、保存時に自動的に展開 (コピー) されるはずです。ブラウザーを更新して、ブラウザーのキャッシュを除いて変更を確認する必要があります。

本当に Tomcat にプロジェクトの静的ファイルを直接見てもらいたい場合は、(同じプロジェクトにデプロイする Java クラスがない限り) 何もデプロイせずに Tomcat を実行し、>のserver.xml下のファイルを編集して、次のようにいくつかの要素を追加します。ServersApache Tomcat v7.0 at localhost-configContextHost

<Context docBase="C:\path\workspace\project\WebContent\css" path="/project/css" reloadable="true" />
于 2013-07-08T14:39:45.850 に答える
0

デフォルトでは、 にあるアプリのみを共有します$CATALINA_HOME/webapps$CATALINA_BASE/conf/server.xmlで変更できます<Host />

attributeのドキュメントを確認してくださいappBase

それが役に立ったことを願っています。

于 2013-06-25T19:40:30.130 に答える
-1

通常、web アプリケーションは webapps ディレクトリの下でホストされますが、外部ディレクトリを tomcat の web アプリケーション ホスト ディレクトリとして構成することもできます。Eclipse ワークスペース プロジェクトの出力ディレクトリをアプリケーション ベースとして設定するだけです。これは、Tomcat のマネージャー アプリケーションを使用して外部ディレクトリからアプリケーションをデプロイするか、単に server.xml (conf ディレクトリの下にあります) を編集して以下のようにアプリケーションを定義することで実行できます。

....

<Context docBase="D:\your\eclipse\workspace\project\WebContent" path="/projectbaseurl"   reloadable="true"/>

</Host>
</Engine>
</Service>
</Server>
于 2013-07-03T11:30:31.023 に答える