ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Express メッセージ集
FUJITSU Software

105.3.1 java.lang.ClassCastException

あるオブジェクトを継承関係にないクラスにキャストしようとしたことを示すためにスローされます。たとえば、J2EEは標準のJDBCのAPIしかサポートしませんが、データベース固有のクラス(oracle.jdbc.driver.OracleConnectionなど)にキャストしようとした場合などにスローされます。


本項で説明している例外一覧

例外の説明


java.lang.ClassCastException

意味

EJBアプリケーションにおいてJavaアプレットで異常が発生し、Javaコンソールに当該例外が出力された場合は、権限が正しく設定されていない可能性があります。


IJServerのクラスパスに設定しているモジュールのアクセス権が、IJServer起動ユーザにない可能性があります。

ユーザの対処

Javaアプレットの異常でJavaコンソールに出力された場合は、権限が正しく設定されていない可能性があります。“J2EE ユーザーズガイド(旧版互換)”の“Javaアプレットを使用する場合”を参照し、権限が正しく設定されているかを確認してください。
なお、例外発生によりスタックトレースが出力されない場合があります。


IJServerのクラスパスに設定しているモジュールのアクセス権が、IJServer起動ユーザからアクセス可能か確認してください。アクセス権がない場合、IJServer起動ユーザからアクセス可能なようにアクセス権を変更してください。


java.lang.ClassCastException: %s

可変情報

%s = データソースの型名

意味

利用できないデータソースを指定しています。

ユーザの対処

J2EEアプリケーションクライアント、Webアプリケーションで、XAデータソースを指定していないか確認してください。
なお、例外発生によりスタックトレースが出力されない場合があります。


java.lang.ClassCastException: [narrow()]

ユーザの対処

EJBアプリケーションにおいてクライアントからのnarrow処理で例外が発生した場合は、以下について確認してください。また、IJServerの「クラスローダの分離」の設定によっては、モジュール間で参照ができない場合があります。“J2EE ユーザーズガイド(旧版互換)”の“J2EEアプリケーションの設計”の“クラスローダの分離”参照し、アプリケーションの構成あるいはクラスローダの分離に誤りがないか確認してください。
なお、例外発生によりスタックトレースが出力されない場合があります。

  • narrow処理を行っているEJBアプリケーションのHomeインタフェースクラス型(narrow処理の第2パラメタで指定している型)と、lookup処理を行っているEJBアプリケーションのHomeインタフェースクラス型が正しいか確認してください。
    また、クライアントアプリケーション環境に設定した、クライアント配布物がlookup処理を行っているEJBアプリケーションのクライアント配布物であるか確認してください。

  • クライアントの環境が正しく設定されているか確認してください。
    クライアントの環境設定についての詳細は、“J2EE ユーザーズガイド(旧版互換)”の“JNDI”-“EJBを参照する場合の環境設定”を参照してください。

  • ローカルインタフェースを使用したEJBアプリケーションのlookup処理で、narrow処理を行っていないか確認してください。

  • ローカルインタフェースを使用したEJBアプリケーションのdeployment descriptorに、参照LocalEJB(ejb-local-refタグ)が記述されているか確認してください。記述されている場合は、参照するEJBアプリケーション名が正しく記述されているか確認してください。

  • WAR内にEJBアプリケーションのクラスが含まれているなどで、ApplicationクラスローダやWebappクラスローダでHome/Remoteインタフェースが参照される場合、クライアント配布物をIntesrtageクラスローダでロードするよう設定するとClassCastExceptionが発生する場合があります。同じ名前のクラスが複数のクラスローダでロードされないよう、クラスやjarの格納場所を変更してください。または、クラスローダの分離を“分離しない”に変更してください。
    クラスローダの詳細については、“J2EE ユーザーズガイド(旧版互換)”の“クラスローダ”を参照してください。


java.lang.ClassCastException: [writeRemoteObject()] Specified object type is invalid.

ユーザの対処

EJBアプリケーションにおいて分散トランザクション機能を使用している場合、Interstage管理コンソールの「ローカル呼出し」を“する”が指定されていないか確認してください。“する”が指定されている場合は“しない”を指定して、再度IJServerを起動して実行してください。
なお、例外発生によりスタックトレースが出力されない場合があります。


java.lang.ClassCastException: com.fujitsu.ObjectDirector.CORBA.ObjectImpl

意味

EJBのHomeインタフェースを直接キャストしています。

ユーザの対処

Homeインタフェースをlookupした時には直接キャストすることはできません。
HomeインタフェースはPortableRemoteObjectクラスのnarrowメソッドを用いてキャストしてください。
なお、例外発生によりスタックトレースが出力されない場合があります。


java.lang.ClassCastException: While loading stub, Exception occurred. narrow from %s1 to %s2.

可変情報

%s1 = lookup処理を行っているHomeインタフェースクラス型
%s2 = Homeインタフェースクラス型(narrow処理の第2パラメタで指定している型)

意味

lookupまたはnarrow時のクラスのロードに失敗しました。

ユーザの対処

同一Java VMで運用するIJServerに配備されたEJBアプリケーションにおいて、narrow処理を行っているHomeインタフェースクラス型(narrow処理の第2パラメタで指定している型)と、lookup処理を行っているHomeインタフェースクラス型が正しいか確認してください。
また、クライアントアプリケーション環境に設定したクライアント配布物が、同一Java VMで運用するIJServerに配備され、lookup処理を行っているEJBアプリケーションのクライアント配布物であるか確認してください。
また、使用しているJavaのバージョンと、クライアント配布物をコンパイルしたJavaのバージョンが異なる可能性があります。EJBアプリケーションを配備したIJServerのJavaのバージョンと、EJBアプリケーションを呼び出すJavaのバージョンは一致させてください。配備したIJServerのJavaのバージョンより、EJBアプリケーションを呼び出すJavaのバージョンが低い場合は、旧バージョン・レベルのIJServerに配備したクライアント配布物を使用し、EJBアプリケーションを呼び出すJavaのバージョンと、クライアント配布物を生成したJavaのバージョンを一致させてください。
なお、例外発生によりスタックトレースが出力されない場合があります。


java.lang.ClassCastException: com.sun.corba.se.impl.orb.ORBImpl cannot be cast to com.fujitsu.ObjectDirector.CORBA.ORB

意味

ORBの指定が正しく行われていません。

ユーザの対処

JDK6/JRE6以外を使用している可能性があります。J2EEアプリケーションクライアントは、JDK6/JRE6で動作させてください。

ORBの指定をしていない場合は、“J2EE ユーザーズガイド(旧版互換)”の“クライアント環境での環境設定”を参照して設定してください。