1

web-fragment.xml ファイルを使用する Web アプリケーションを開発しています。

私の知る限り、WEB-INF/lib の JAR の web-framgent.xml ファイルをマージして、有効な web.xml に解決する必要があります。そこで、Tomcat 7 サーバーの logEffectiveWebXml オプションを有効にして、結果のファイルを確認します。

有効な web.xml ファイルの冒頭:

ケース 1: アプリケーションがスタンドアロンの Tomcat 7 にデプロイされている場合:

<?xml version="1.0" encoding="UTF-8"?>
<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"
         metadata-complete="true">

ケース 2: アプリケーションが Eclipse IDE の Tomcat 7 にデプロイされている場合:

<?xml version="1.0" encoding="UTF-8"?>
<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="2.5"
         metadata-complete="true">

version 属性が「2.5」に置き換えられていることがわかります。

また、スタンドアロンの Tomcat にアプリをデプロイする場合、有効な web.xml は正しく (web-fragments.xml ファイルのコンテンツはマージされます)、Eclipse から Tomcat を起動する場合はこれらのコンテンツは存在しません。これはバージョンのオーバーライドによるものだと思います。

Eclipse での起動時に version 属性がオーバーライドされる理由を知っていますか?

Eclipse の構成、プロジェクトの構成 (すべて動的 Web モジュール 3.0 を使用)、およびワークスペース ディレクトリ ".metadata.plugins\org.eclipse.wst.server.core" を調べましたが、問題を見つけることができませんでした...

注: アプリケーションをデプロイしていなくても (= Tomcat の新規インストール)、バージョンが上書きされていることにも気付きました。

ご協力いただきありがとうございます。

4

0 に答える 0