Tomcat/webapps/myapp/WEB-INF
内に直接存在するJSPファイルを編集していますが、変更を確認するには、サーバーを再起動する必要があります。私の知る限り、JSPの変更ではサーバーを再起動する必要はありません。自動リロードに関連する唯一の構成は、 reloadable = "true" です
Catalinaで/ WEB-INF/classes /および/ WEB-INF/lib内のクラスの変更を監視し、変更が検出された場合にWebアプリケーションを自動的にリロードする場合は、trueに設定します。
context.xml
でこの属性を使用しましたが、それでも問題は解決しません。再起動せずにJSPファイルの変更を検出しない他の考えられる理由は何ですか?
@ Bozho:これはweb.xml
からの抜粋です。何か変更する必要がありますか?
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.Apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
Tomcat docs で、development
設定を参照してください。 jspをリロードするには、trueに設定する必要があります。
開発-Jasperは開発モードで使用されていますか? trueの場合、修正のためにJSPがチェックされる頻度は、modificationTestInterval parameter.trueまたはfalse(デフォルトはtrue)で指定できます。
これはCATALINA_HOME/conf/web.xml
さらに、再起動せずに本番環境でjspを更新する必要がある場合は、CATALINA_HOME/work/Catalina/localhost/contentName/org/Apache/jsp
およびyour_jsp.Java
およびyour_jsp.class
ファイル。次回アクセスしたときに再作成されます。
編集:設定を提供し、コンテンツを更新しないことについてコメントした後、ブラウザキャッシュをクリアするか、別のブラウザからページを開きます。
さらに遅い答え...
コンテキストファイルで「antiResourceLocking」を「true」に設定すると、JSPがTomcatによって再ロードされなくなる可能性があります( Bugzilla 37668 )。
これは、 Tomcat doc の「antiResourceLocking」パラメーターの説明に記載されています。
同じ問題があり、問題を修正しました。 conf/context.xml
次の設定がありません
<Context antiJARLocking="true" antiResourceLocking="true">
ある場合は、両方を削除しますantiJARLocking="true" antiResourceLocking="true"
、 書くだけ
<Context>
わかりやすいかもしれませんが、「開発をtrueに設定する」ことの意味は次のとおりです(クイックリファレンスの詳細)。
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.Apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<!-- Add the following init-param -->
<init-param>
<param-name>development</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
そして再起動します。
遅い答えですが、他の誰かがこれを便利だと思うかもしれません。
Tomcatフォルダーのアクセス許可を確認してください。他の多くのソリューションを試しましたが、うまくいきませんでした。
最後に、Tomcatフォルダーに「ユーザーアカウント」「フルコントロール」権限を付与し、JSPに変更を加えるたびにTomcatが変更を取得しました。 Windowsを使用していると仮定しています。この理由は、JSPに変更を加えるときはいつでも、コンパイルしてwebappsフォルダーにデプロイ(書き込み)する必要があるということです。そのフォルダに「書き込み」権限がない場合、サイレントに失敗します。これは私の場合に起こっていました。したがって、reloadable = true
およびdevelopment = true
context.xmlで機能しません。この権限の修正を試してください。
Windows 7でTomcat 7を使用しています。
サーバーとクライアントの時間を同期する
サーバー時間とクライアントシステム時間を確認できます。数日前にサーバー時間を変更した後、私にとっては正しく機能しました。 。jspファイルの変更を反映しています。
Eclipseを使用するWindows 7でTomEE 1.7.2を使用しています。私のために働いた解決策は、localhost-config(私のIDE内)でTomEEサーバーのweb.xmlファイルを変更して、開発の初期化パラメーターがtrueになるようにすることでした。
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.Apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>development</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
(Tomcat 7.0.62)CATALINA_HOME/temp /xx-mysite /に移動して、thatでjspファイルを見つける必要がありました=ディレクトリツリーを編集します。
xxはrandom(?)プレフィックス番号で、私の場合は11ですが、すべてのサイトに1つずつあります。
context.xml
ファイルをMETA-INFフォルダーに保存し、antiJARLocking
をfalseに設定します。
ディレクトリツリーは次のようになります。
Web> META-INF> context.xml
Eclipseのサーバープロジェクトに移動し、web.xmlファイルを編集して、「development」をtrueに設定する必要があります。