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 の新規インストール)、バージョンが上書きされていることにも気付きました。
ご協力いただきありがとうございます。