Spring MVC、Maven、jetty-maven-plugin プラグイン (7.6.2.v20120308) を使用してローカルで開発しています。
これは良い考えではないと考える人もいると思いますが、いくつかの .jsp ファイルを自動的に生成します。たとえば、JSTL/EL コードを含めるために、動的にしたいdyn.jsファイルがあります。
要するに、私がしていることは次のとおりです。
動的な dyn.js が呼び出され、解釈されたキャッシュ バージョンがまだ存在しない場合は、リクエストを特別なコントローラーにリダイレクトします。
コントローラーは dyn.js ファイルのコンテンツを取得し、このコンテンツを含むdyn.js.jspファイルを、他の .jsp ファイルと同じディレクトリに作成します。実行時に、次のようなものを使用してそのディレクトリを取得します。
getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "tags"
jsp ファイルが生成されると、コントローラーはビュー パス (または ModelAndView) を返し、ビューを処理できるようにします。
ビューが最終的にレンダリングされると、結果のコンテンツを取得し (フィルターでカスタム Response ラッパーを使用)、キャッシュ ファイルに保存します。
この方法はうまくいきます!私はそれでかなり満足しています。
唯一の問題は、動的 dyn.js を生成しようとすると、このエラーが発生することがあることです。
Jul 8, 2012 5:15:12 PM org.apache.jasper.servlet.JspServlet _serviceJspFile
SEVERE: PWC6117: File "C:\somepath\src\main\webapp\WEB-INF\tags\dyn.js.jsp" not found
これが発生すると、どうしようもありません。ページを更新してもjspが見つからないため、dyn.jsが機能しません。次に、ファイル システム (C:\somepath\src\main\webapp\WEB-INF\tags\dyn.js.jsp)に .jsp ファイルが存在することを確認しました。
この問題はランダムに発生するようです。問題を自由に再現することはできません。5分の1の確率で起こると言われています。
状況によっては、Jetty が生成された .jsp ファイルを「見る」ことができないようです。
この問題を引き起こす可能性のあるものと、それを修正する方法はありますか?
更新:私は jetty-maven-plugin バージョン 7.6.2.v20120308 を使用します。