開発では、jetty をサーブレット コンテナーとして使用します。次の開発構成があります。
- wabapp ディレクトリを持つマスター プロジェクト
- webapp ディレクトリ内の一部のファイルをオーバーライドする派生プロジェクト
WebAppContext
jettyに適切なものを提供することで、マスター プロジェクトの webapp を開発モードで開始できます。
ここで、派生プロジェクトを同様に開始したいと思います。リクエストが行われたときに次の試みがあると仮定します。
- 派生プロジェクトの webapp ディレクトリからリソースを取得する
- 存在しない場合は、マスター プロジェクトの webapp ディレクトリから取得します
メソッドをオーバーライドできることはわかっていますWebAppContext#getResource()
が、プロジェクトで使用する一部のライブラリは、wabapp ディレクトリに対して独自に IO 操作を実行しているようです。たとえば、 を呼び出しServletContext#getRealPath("/")
てから、メソッドを使用せずにファイルを読み取りますServletContext#getResource()
。この問題は、上の仮想ファイル システムによって下位レベルで解決できますがFile
、JDK 1.6 ではサポートされていないようです。何か提案はありますか?