Tomcat6のクラスローダ。
へ〜、ちゃんと親のクラスローダが分かるようになっているんだ。これは分かり易いね。
WebappClassLoader delegate: false repositories: /WEB-INF/classes/ ----------> Parent Classloader: org.apache.catalina.loader.StandardClassLoader@c53dce
Tomcat6.0 マネージャからのdeployでNullPointerException
時折deployがNullPointerExceptionで失敗する。以下の場所で落ちているようだ。
--- HTMLManagerServlet.java (Line 434) --- args[11] = new Integer(context.getManager().getMaxInactiveInterval()/60);
上の方のコードを見てみると、
if (context.getManager() != null) {
args[4] = new Integer
(context.getManager().getActiveSessions());
} else {
args[4] = new Integer(0);
}
どうもcontext.getManager()はnullのケースがあるようだ。とりあえず、以下のようにして逃げる。
if (context.getManager() == null) {
args[11] = new Integer(0);
}
else {
args[11] = new Integer(context.getManager().getMaxInactiveInterval()/60);
}
P.S. あ〜、Tomcat6.0はJDK5が前提だからInteger.valueOf(int)を使った方が望ましいね。
Tomcat6.0 Deployer
Managerアプリ的にはデプロイの時に、warファイルだけではなくてディレクトリも指定できるんだけど(実際manager/htmlでは受け付けてくれる)、ant taskの場合には、どうもwarしか受け付けないようだ。
/home/shanai/docs/sample/logging01/build.xml:40: java.io.FileNotFoundException: /home/shanai/docs/sample/logging01/deploy (Is a directory)
面倒だけどwar作るしかないかな。





