私のEJBプロジェクトは以下の構造を持ち、Mavenを使用してパッケージ化されています。ejbがcore.jarファイルにパッケージ化されています。リモートルックアップは、jar (core-common.jar)としてパッケージ化された別のプロジェクト内のすべてのインターフェイスとPOJOを移動し、依存関係としてWebモジュールに追加して、リモートEJB呼び出しに使用できるようにすることで可能になりました。
├── core.jar
├── app_war
│ ├── META-INF
│ └── WEB-INF
├── lib
└──core-common.jar
アプリケーションをデプロイするとIllegalAccessException - access denied
、コアがPOJOのいずれかをインスタンス化しようとしたときに終了しますcore-common.jar
。POJOまたはクラスのいずれにもプライベートメソッドまたはコンストラクターはありません。これは私を困惑させました。
また、過去にこれらのPOJOにはコンストラクターprotected
があり、POJOとインターフェイスを階層化するためにリファクタリングした後、すべてを公開することにしました。
リファクタリング後にこの違法なアクセスを引き起こしている可能性があるものを誰かが知っていますか?アプリケーションはGlassfishにデプロイされます。