パフォーマンス上の理由から、Jettyキャッシュはデフォルトでプロパティファイルなどの静的リソースによってキャッシュされます。例えば、このようないくつかのコード:それはまだキャッシュからではなく、ディスクから利用できるようになるので、Jettyでサーバーキャッシュを無効にする方法
public class FrontServlet extends HttpServlet
{
private final Properties routes = new Properties();
@Override
public void init()
throws ServletException
{
try {
this.routes.load(this.getClass().getClassLoader().getResourceAsStream("routes.properties"));
} catch (IOException | NullPointerException e) {
throw new ServletException(e);
}
}
}
は、私がroutes.properties
ファイルを削除した後も仕事を続けるでしょう。 The Eclipse Jetty plugin documentationもこれに言及しています。「サーバーキャッシュを無効にする」を探します。
ここでは、誤検出を避けるために開発環境でこの機能を無効にしたいと考えています。 The Jetty documentationには、0
に設定されている場合、キャッシュを無効にするmaxCacheSize
というinitパラメータがあることが記載されています。しかし、私は、コンテキストパラメータとしての両方を試してみました:
<context-param>
<param-name>org.eclipse.jetty.servlet.maxCacheSize</param-name>
<param-value>0</param-value>
</context-param>
とサーブレットのinitパラメータとして:
<servlet>
...
<init-param>
<param-name>org.eclipse.jetty.servlet.maxCacheSize</param-name>
<param-value>0</param-value>
</init-param>
</servlet>
無駄に。
誰でもこれを行う方法を知っていますか?
EDIT:
routes.properties
ファイルはまだ私は、Webサーバーを再起動した後でも発見され、そしてベイグラント仮想マシン、それが動作しています。また、私はMaven Jetty pluginを使用しているので、mvn jetty:run
でサーバを起動していることを述べるべきです。
私はまた、Webサーバー、さらには仮想マシン全体を再起動しようとしましたが、物理的に欠けているにもかかわらず、プロパティファイルが見つかりました。 – swahnee