ひよっこ。

I want to…

HudsonをバージョンUPしたらNoClassDefFoundError

Posted by hikaruworld : 2010 1月 19

Hudsonさんには毎日お世話になっています。
そんなHudsonさんを最近VersionUpしていなかったので、
今回ver1.323からver1.341にバージョンUPしました。

私の家では彼(プロジェクトによっては彼女ですが)はTomcat上で動いていて、バージョンは6.0.18になります。
再起動後、以下のようなエラーになりました。

SEVERE: Failed to initialize Hudson
java.lang.NoClassDefFoundError: hudson/Main (wrong name: Main)
at java.lang.ClassLoader.defineClass1(Native Method)
…以下略

とりあえずググって見ると以下のURLを発見。
http://n4.nabble.com/Error-deploying-1-324-to-tomcat-td361411.html
同様の件のようなのでスレッドを追っていると、川口氏のこんなコメントが。
http://n4.nabble.com/Error-deploying-1-324-to-tomcat-tp361411p361415.html

Can you go to $TOMCAT_HOME/webapps/hudson/WEB-INF/lib and run

javap -classpath hudson-core-*.jar hudson.Main

… to make sure you see “public class hudson.Main extends
java.lang.Object” ?

ふむふむ、実行クラスを逆アセンブラしてMainメソッドがあるか確認してみろと。
これに従って実行してみる。
以下ログ。

Compiled from "Main.java"
public class hudson.Main extends java.lang.Object{
    public static boolean isUnitTest;
    public hudson.Main();
    public static void main(java.lang.String[]);
    public static int run(java.lang.String[])       throws java.lang.Exception;
    public static int remotePost(java.lang.String[])       throws java.lang.Exception;
    static {};
}

ちゃんとMainが存在しているようです。
改めて、Tomcatを再起動。

問題なくアクセスできてしまいました。
うーん、原因が謎。。。

ところで、Hudsonのバージョンをver1.341にバージョンアップすると

Get Support Subscription
Commercial support subscription available from Sun Microsystems.

というものが表示されていました。

いつの間にさサポート契約まで出来ていたとは。。。
結構なお値段ですが、企業とかであるとその価値は十分ありそうな気がします。

Subscription Level Master # of additional slaves Price
Basic 1 1 $999/yr
Silver 1 10 $2999/yr
Gold 1 25 $5999/yr

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

 
%d人のブロガーが「いいね」をつけました。