-3

Web アプリの web.xml に、Web アプリの lib ディレクトリに追加する jar ファイル内のディレクトリ構造を使用するフィルターを追加する必要があります。

<filter>
                <filter-name>monitor</filter-name>
                <filter-class>com.student.compute</filter-class>
        </filter>
        <filter-mapping>
                <filter-name>monitor</filter-name>
                <url-pattern>/*</url-pattern>
        </filter-mapping> 

ここで、フィルターは jar ファイル内の com.student パッケージの「compute」クラスを使用しています。jarファイルを展開して、この構造が存在するか確認しました。

これで、classes ディレクトリにも、アプリケーション固有の多くのクラスを格納する com ディレクトリがあります。

これで、Web アプリケーションのコンテンツにアクセスしようとしたときに、jar ファイル内の com とクラス ディレクトリ内の com が衝突しなくなりました。

どうか明らかにしてください。

4

2 に答える 2

1

いいえ、衝突しません。それが問題である場合、Apache などの複数のライブラリを同時に使用することはできません。これらのライブラリはすべて、org.apache のサブパッケージにクラスを配置しているためです。

クラスパス内のすべてのクラスのパッケージ ツリーは、クラスパスにリストされているすべての jar およびディレクトリのすべてのパッケージ ツリーのマージを含む巨大なツリーとして表示されます。

クラスパスの2つの異なるjar/ディレクトリにまったく同じパッケージと名前を持つ2つのクラスがある場合、最初のものしか利用できず、(AFAIK)について保証できないため、問題になります。クラスパスの WEB-INF/lib の下にある WEB-INF/classes と jar の順序。

于 2013-07-15T15:34:13.317 に答える