最終更新日 :
|
次にも適用 : Communiqué 4
問題点
/classes/.../serviceclass に配置されたカスタム CQ サービスを設定しました。(ServiceManager.getService() によって)JSP スクリプトからこの CQ サービスにアクセスしようとすると、ClassCastException が取得されます。
解決策
クラスが同じ classloader から読み込まれるようにするには、クラスファイル(パッケージディレクトリ階層を含む)を jar ファイルに指定します。次に、/system/bin.new/lib. にコピーします。com.day.cq.bootstrap.BootClassLoader はクラスを読み込みます。サービスマネージャーと JSP システムは、com.day.cq.bootstrap.BootClassLoader を使用します。
注意:
クラスが /classes/... に存在しないこと、或いは、cqde の前のコンパイルからクラスキャッシュ (/system/works/classes) に存在することを確認します。その後、再起動します。
追加情報
ClassCastException は、サービスマネージャーと JSP システムが同じ classloader を使用していない場合に発生します。したがって、サービスマネージャーおよび JSP システムにとって、あなたのクラスは同じではありません。
アカウントにログイン