Ubuntu/tomcat6で /etc/init.d/tomcat6 start 時にsyslogに大量のエラーメッセージがでるのだが
Sep 16 02:28:07 ****** jsvc.exec[32503]: Could not load Logmanager "org.apache.juli.ClassLoaderLogManager" Sep 16 02:28:07 ****** jsvc.exec[32503]: java.security.AccessControlException: access denied (java.lang.RuntimePermission setContextClassLoader) <<< 中略 >>> Sep 16 02:28:07 ****** jsvc.exec[32503]: ^Iat org.apache.commons.daemon.support.DaemonLoader.load(DaemonLoader.java:139)
/var/lib/tomcat6/conf/policy.d配下にある03catalina.policyを以下の様に変更したらエラーメッセージが出力されなくなった。
grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" { permission java.lang.RuntimePermission "setContextClassLoader"; ← これを追加
どうも、tomcat-juli.jarからログ出力しようとする時にsetContextClassLoader()を呼び出しているのに、その権限を与えられていなくて、例外発生しまくりだったのかな??
Tomcat6の起動時にポリシーファイルを再生成している件
CATALINA_HOME=/usr/share/$NAME ### 中略 ### # Directory for per-instance configuration files and webapps CATALINA_BASE=/var/lib/$NAME ### 中略 ### POLICY_CACHE="$CATALINA_BASE/work/catalina.policy" ### 中略 ### cat $CATALINA_BASE/conf/policy.d/*.policy \ >> "$POLICY_CACHE"
最終的に使用されるポリシーファイルは/var/lib/work/catalina.policyと。