2011-01-19 30 views
27

少し前に、Servlet API 3.0に含まれると思われる記事を読んでいました。 .jspファイルを/WEB-INF/lib/somelib.jar/META-INF/web/.jspに保存することができ、このリソースはWebアプリケーションのコンテキストルートに公開されることを読んでいます。Webアプリケーションでjarファイルからリソースを公開する(Tomcat7)

Tomcat7をインストールしてみましたが、jarファイルにいくつかのWebリソースを置くことができるドキュメントは見つかりませんでした。

  • サーブレットAPI 3.0にこの機能はありますか?
  • この機能はtomcat 7.0には存在しますか?
  • /lib/*.jarファイルにjspファイルを置く別の方法はありますか?
  • 答えて

    39

    サーブレット3.0には、リソース(イメージ、jspなど)をJARファイルにパッケージ化する機能があります。あなたがしていることは、あなたのjarファイルにあります。META-INF/resourcesを作成し、あなたのリソースを構造化するためのディレクトリを含め、そこに必要なものをダンプします。あなたのWebアプリケーションのdocrootにはMETA-INF/resourcesがマップされます。

    あなたのアプリケーションとJARファイルの間にリソースの衝突がある場合、あなたのアプリケーションリソースが返されます。 Tomcatの7 this

    を参照してくださいので、それは、この機能に

    +2

    感謝をサポートする必要がありサーブレット3をサポートしています。私はこれをTomcat 7.0.6でテストしました。 WEB-INF/classesではなく、WEB-INF/libのjarファイルでのみ動作することが重要です。 –

    +0

    はいlibのJARファイルでのみ有効です。これは、フレームワークが独自のリソースを提供できるフレームワークをサポートするためのものです。 –

    +0

    私はspring-js-resources.jarファイルを使用しています。すべてのファイルは、META-INF/resourcesではなくMETA-INF/web-resourcesの下にあります。また、mavenプラグインを使って埋め込み可能なTomcat 7を起動しても動作しません。解決策はありますか? – Alexandr

    関連する問題