以下を含むapp1.earが動作しています。
- api.jarからインターフェースMyObjectを実装するJPA エンティティMyObjectImpl
- MyObjectインターフェースと EJB Remote インターフェースを備えたapi.jar
- JPA エンティティにアクセスして変更するためのメソッドを提供する EJB を含むejb.jar
2 番目の app2.earは、 api.jarのインターフェースのみを使用してapp1.earと通信することになっています。耳の間でJavaの基本型を渡すと、すべてが正常に機能します。しかし、app2.earがMyObjectのapp1.earインスタンスから取得しようとすると、 MyObjectImplクラスが見つからないという CORBA MARSHAL 例外が発生します。
"IOP00810257: (MARSHAL) Could not load class com.zzz.MyObjectImpl"
MyObjectImplをapp2.earに配置すると問題は解決しますが、JPA 実装を他の ear アプリケーションに公開したくありません。何か不足していますか、それとも私のアプローチが間違っていますか? 何をすべきか、どこを掘るべきかアドバイスしてください。よろしくお願いします!
PS: サーバー GF 3.0.1、GF 固有のデプロイメント記述子なし、両方の耳が同じ JVM で実行されている