WebLogic Server 9.2 - JDK 5 Update 9 の適用

失敗

WebLogic Server で使用する JDK を JDK 5 Update 9 に変更すると、サーバインスタンス起動時に weblogic.management.ManagementException が発生してしまいます。

環境

このレポートは、以下の環境について記述したものです。

JDK JDK 5 Update 9 (JDK 5 Update 7 以降すべて)
AP サーバ WebLogic Server 9.2

ログ

ManagementException のスタックトレース

原因

JDK 5 Update 7 で QName の serialVersionUID (詳しくは 補足 を参照) が変更されました。 一方、WebLogic Server 9.2 に含まれているライブラリに存在する QName の serialVersionUID は、JDK 5 Update 6 以前の値のままです。 このため、互換性がないとみなされてしまい、例外が発生します。

解決策

この問題は、起動時に serialVersionUID の値を統一することで回避できます。 /common/bin/commEnv.sh にて、serialVersionUID のバージョンを書き換えてください。

(1) commEnv.sh の修正

WebLogic Server 全体の環境変数を定義する commEnv.sh (Windows の場合は commEnv.bat) に、serialVersionUID の書き換えを追加します。

[commEnv.sh - 以下を追加]
# OName の serialVersionUID を 1.0 に統一
JAVA_OPTIONS="$JAVA_OPTIONS -Dcom.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0"

補足

■ serialVersionUID とは?

直列化されたクラスが、送り側と受け側で同じクラスであるかどうか判別するための値です。 JDK の serialver コマンドを使用することにより、クラス名、インタフェースクラス名、メソッド、フィールドをハッシュした 64 ビット値として取得できます。

【定義例】
private static final long serialVersionUID = 3021367093337410941L;

参考サイト

コメント

コメント投稿
(非公開)
     « アイコン一覧 »
(必須)

作成日:2006/12/29
更新日:2006/12/29