Java EE 7.にEclipse keplerを使用しようとしています。すでにJBoss Toolsをインストールし、JBoss Wildflyをサーバーとして正常に追加しました。ただし、変更は自動的にデプロイされません。アプリはGlassfishを使用するときと同じように自動的に展開されますか?
Eclipseを使用して、WildFlyサーバーを2回クリックし、次のプロパティを編集します。
\.jar$|\.class$
に編集しますそれでおしまい。幸運を!
@varantesと@Seanはどちらも本質的に正しいですが、これらの答えは完全ではありません。
残念ながら、Javaサーバー環境で完全なゼロダウンタイムのホットデプロイメントを実現する唯一の方法は、有料 JRebel または無料 spring-loaded を使用することです=ツール。
ただし、小規模なプロジェクトの場合、部分的なホットデプロイメントによって作業をスピードアップする方法がいくつかあります。基本的に:
*.html
、*.xhtml
ファイル内の変更は、更新するとすぐに反映されますブラウザ。*.jsp
ファイルのホットデプロイメントを機能させるには、$ {wildfly-home} /standalone/configuration/standalone.xml内で次の変更を行う必要があります。<jsp-config/>
<jsp-config development="true"/>
サーバーを再起動して、Webファイルのホットデプロイメントを楽しんでください。
ただし、*.Java
ソースファイルを変更する場合、部分的なホットデプロイメントのみが可能です。
@ varantesが彼の回答で述べたように、正規表現パターンを\.jar$|\.class$
に設定してApplication Reload Behaviorを有効にすることはオプションですが、深刻な欠点があります。モジュール全体が再起動されるため、次のようになります。
だから個人的には、私はこの解決策を思いとどまらせます。
JVMは(デバッグモードで)メソッドの本体のコードスワップをサポートしています。したがって、既存のメソッドの本体のみを変更している限り、自宅にいることができます(ダウンタイムがゼロ、変更はすぐに反映されます)。ただし、サーバー設定内の自動公開を無効にする必要があります。無効にしないと、アプリケーションの状態はその再公開によって引き続き破壊されます。
しかし、Javaコード(クラス、注釈、コンストラクターを追加)を頻繁に使用している場合)、残念ながら、セットパブリッシングをに自動的にパブリッシュすることはお勧めできません(またはサーバーのシャットダウン)およびJavaファイルでの作業が終了したら、モジュール(またはターンオンサーバー)を手動で再起動します)。
小さいJava=プロジェクトの場合は機能しますが、大きいプロジェクトの場合、JRebelは非常に貴重です(または単にスプリング式)。これは、上記のすべてのアプローチでは不十分なためです。
BTW:また、このような問題のため、Rails
/Django
/Play! Framework
などのソリューションが非常に人気を博しました。
幸運と高速コーディング!
Wildflyの最新バージョン(執筆時点で8.0 Beta 1)を使用していることを前提としています。
Standalone.xml設定ファイルで、<jsp-config />を探します。属性development = "true"を追加すると、ホットデプロイされます。結果の構成は次のようになります。
<jsp-config development="true"/>
XPath = // servlet-container/jsp-config /の構成ファイルに属性(開発、チェック間隔、変更テスト間隔、再コンパイル失敗)を追加します
<servlet-container name="default" default-buffer-cache="default" stack-trace-on-error="local-only">
<jsp-config development="true" check-interval="1" modification-test-interval="1" recompile-on-fail="true"/>
</servlet-container>
(WildFly-8.0.0.Finalで動作します)
サーバーをデバッグモードで起動すると、メソッド内の可能性が追跡されます。その他の変更サーバーの再起動を求められます。