1

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 を使用します。

4

2 に答える 2

0

興味のある方は、回避策を見つけたと思います。最初のリクエストで問題が解決したように見える前に、コンテンツがなくても一時的な .jsp ファイルを作成します。

したがって、アプリケーションの開始時に、コンテンツが空の動的な .jsp ファイルを作成するフックがあります。

于 2012-07-09T01:22:07.297 に答える
0

問題はファイルパスに関するものだと思います。コンソールでパスをコピーしてWindowsエクスプローラーに貼り付けると、パスを開くことができません。

于 2013-10-17T17:25:11.117 に答える