[Seasar-user:13386] Re: [Tomcat][TEEDA]起動時にParserConfigurationExceptionについて
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2008年 3月 21日 (金) 19:00:04 JST
小林 (koichik) です.
Date: Fri, 21 Mar 2008 18:05:25 +0900
From: "西山はじめ" <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:13385] [Tomcat][TEEDA]起動時にParserConfigurationExceptionについて
> Tomcat起動時にParserConfigurationExceptionが発生してしまします。
> FAQですと、xercesImpl.jarとxml-apis.jarを削除すれば良いとのことですが、運用上の都合で削除できない状況となっております。
> 削除せずに、起動させる方法はありますでしょうか?
Teeda 1.0.12 以降なら以下を参照して STRICT を
試してください.
http://teeda.seasar.org/ja/extension_customize.html#parse-xhtml
> また、よろしければどうしてこのようなエラーが発生するのかお教えいただけないでしょうか。
> jarファイルは、$CATALINA_HOME/common/endorsed配下よりWEB-INF/libの方を先に参照すると思っております。
WEB-INF/lib より $CATALINA_HOME/common/endorsed が先です.
$CATALINA_HOME/common/endorsed は java.endorsed.dirs に
登録されるので,そこにある Jar はブートストラップ
クラスローダの周辺でロードされてしまいます.
そして Tomcat の WebappClassLoader は自身でクラスを
ロードする前にシステムクラスローダからのロードを
試みるので,$CATALINA_HOME/common/endorsed が
先になります.
Tomcat 5.5.26 の WebappClassLoader.java だと
1275 行目からが該当部分.
// (0.2) Try loading the class with the system class loader, to prevent
// the webapp from overriding J2SE classes
try {
clazz = system.loadClass(name);
if (clazz != null) {
if (resolve)
resolveClass(clazz);
return (clazz);
}
} catch (ClassNotFoundException e) {
// Ignore
}
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内