私はappclientスクリプトを使用して呼び出すglassfish 3.1にEJB付きの耳を配置しています。 EJBには、別のライブラリで定義されたモデルオブジェクトをパラメータとして持つメソッドがあります。は、appclient jarのモデルライブラリを含んでいます
私がappclientスクリプトを使いたいのであれば、mainクラスにはEJBを呼び出すmainメソッドがあります。 これはまた、ガラス魚にも配備された別の瓶に入れられます。
モデルオブジェクトは別のライブラリに配置されているため、クライアントjarではなくEJBでも必要です。 だから私は何とかクライアントジャーでそれを参照する必要があります。
クライアントのjarはjar(duh)なので、他のjarを追加することはできません。 Java EE 6のドキュメントでは、libを使用して耳を作成する必要があると言いますが、もしそうすれば展開することはできません。少なくとも耳にはejbまたはWebモジュールが必要です。
私が見つけた解決策は、アセンブリプラグイン/ jar-with-dependenciesを使用しています。このプラグインは、すべての依存関係のすべてのクラスを含む新しいjarファイルを作成します。
この解決策は機能しますが、これが必要なのか分からないので、これが道にあるかどうかわかりません。 EJBは通常、モデルオブジェクトをパラメータとして持つため、このような状況は非常に起こります。
私の質問は、アプリクライアントjarとejb jarの間で共有ライブラリを参照するようにglassfishに指示する方法です。
私もmavenを使用しています。私は1)インタフェースクラス、2)データベース用のjpaプロジェクト、3)データベース用の別のjpaプロジェクト、および4)他のプロジェクトを使用するEJBを持つプロジェクトを分離します。最後に、jpaクラス(モデル)を使用し、リモートインタフェースを使用してEJBを呼び出すappclientプロジェクトがあります。 osgi typeオプションを使用してそれらをデプロイできますが、appclientを実行するとエラーが発生します。 osgi Mavenプラグインを使用していますか?はいの場合は、pomの例を投稿できますか? – thehpi
'osgi maven plugin'がありません。私は実際に ' 'タグを指定しました... –
Hank
は、私にエラーが出ているので奇妙です: 'パッケージングのライフサイクルマッピングを見つけることができません。コンポーネント・リポジトリ:org.apache.maven.lifecycle.mapping.LifecycleMappingbundle'にコンポーネント記述子が見つかりません。あなたはポンを掲示できますか? – thehpi