共通のクラス JAR にパッケージ化された Web アプリケーション全体で使用されるコア機能がいくつかあります。この JAR には、EJB を参照するクラスと、CORE.jar と EJB.jar の両方を参照する Web アプリケーションがあります。
- CORE.jar -> EJB.jar
- WEBAPP.war -> CORE.jar
- WEBAPP.war -> EJB.jar
Glassfish 3.1.2 を使用して Eclipse 開発プラグインにデプロイしています。
デプロイ ログに、次のようなエラーが表示されます。重大: クラス [Lnet/webframeone/ejb/data/GeoLocationsBeanLocal; ] 見つかりません。読み込み中のエラー [ class net.webframeone.servlet.action.GetGeoLocation ]
ここでの参照は、CORE.jar 内のクラスから EJB.jar 内のクラスへのものです。EAR は大まかに次のような構造を持っています。
- EJB.jar
- WEBAPP.戦争
- lib/CORE.jar
CORE.jar の manifest.mf にクラスパス エントリを配置しようとしましたが、役に立ちませんでした。
CORE.jar と EJB.jar を含むデプロイメント アセンブリを使用して WEBAPP をパッケージ化し、それを EAR の外部にデプロイすると、正常に動作します。
どんなアイデアも熱狂的に除外されます!