1

以下を含む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"

MyObjectImplapp2.earに配置すると問題は解決しますが、JPA 実装を他の ear アプリケーションに公開したくありません。何か不足していますか、それとも私のアプローチが間違っていますか? 何をすべきか、どこを掘るべきかアドバイスしてください。よろしくお願いします!

PS: サーバー GF 3.0.1、GF 固有のデプロイメント記述子なし、両方の耳が同じ JVM で実行されている

4

1 に答える 1

1

impl クラスは、逆シリアル化中に必要です。impl クラスを公開したくない場合は、XML または JSON または protobuff を使用する別の方法があります。

于 2010-11-15T14:18:41.913 に答える