<< 2007/05/19 | Home | 2007/05/21 >>
PR: 転職    転職    合宿免許    漫画    シルバー    ブライダルエステ    墓地・霊園    葬式   

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作るしかないかな。

このサイトの掲載内容は私自身の見解であり、必ずしもIBMの立場、戦略、意見を代表するものではありません。
日本アイ・ビー・エム 花井 志生 Since 1997.6.8