6

WEB-INF/lib ディレクトリに jar ファイルがあります。その jar 内には、1 つのファイル (image.jpg) を含む META-INF/resources ディレクトリがあります。サーブレット 3.0 API を理解しているので、Tomcat 7 で Web アプリの一部としてこれをデプロイすると、次の場所に移動できるはずです。

http://host/context/image.jpg 

jar 内からロードされたイメージを確認します。代わりに、404 エラーが発生します。ドキュメントにそうあるべきだと書かれていても、servlet_api が jar 内からリソースをロードしていないようです。

私は何を間違っていますか?これらのリソースをロードして Web ブラウザーで使用できるようにするように tomcat に指示するために、web.xml ファイルに入力する必要があるフィールドはありますか?

4

2 に答える 2

6

jar の作成方法は正しいです。Tomcat 7 には Servlet 3.0 jar が同梱されていますが、web.xml でバージョン 3.0 であることが明示されていない限り、jar からリソースを提供しません。Tomcat は、サーブレット 3.0 の機能が必要であると想定しません。

web.xml では、web-app タグを次のように開始する必要があります。

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

バージョン 3.0 への参照に注意してください

Web アプリのバージョンを 3.0 に指定するとすぐに、サーブレット 3.0 の機能にアクセスできるようになります。

于 2012-06-28T15:01:53.483 に答える