グラスフィッシュ 3.0.1 で実行されている EJB3 アプリケーションから MongoDB インスタンスに接続する必要があります。Mongo プロジェクトは一連のドライバーを提供しており、スタンドアロンの Java アプリケーションでそれらを使用できます。
Java EE アプリケーションでそれらをどのように使用しますか? または、より良い言い回し: EJB コンテナーで実行されるアプリケーションでサード パーティのライブラリを使用できるようにするにはどうすればよいでしょうか?
現時点では、ライブラリからインポートしようとする Bean をデプロイするときに java.lang.NoClassDefFoundError が発生します。
[#|2010-03-24T11:42:15.164+0100|SEVERE|glassfishv3.0|global|_ThreadID=28;_ThreadName=Thread-1;|Class [ com/mongodb/DBObject ] not found. Error while loading [ class mvs.core.LocationCacheService ]|#]
[#|2010-03-24T11:42:15.164+0100|WARNING|glassfishv3.0|javax.enterprise.system.tools.deployment.org.glassfish.deployment.common|_ThreadID=28;_ThreadName=Thread-1;|Error in annotation processing: java.lang.NoClassDefFoundError: com/mongodb/DBObject|#]
[#|2010-03-24T11:42:15.259+0100|SEVERE|glassfishv3.0|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=28;_ThreadName=Thread-1;|Exception while loading the app
org.glassfish.deployment.common.DeploymentException: java.lang.NoClassDefFoundError: com/mongodb/DBObject
at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:171)
at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:125)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:224)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:338)
NetBeans プロジェクトに追加しようとしました (プロパティ -> ライブラリ -> コンパイル -> Jar を追加し、「パッケージ」を有効にします)。また、jar ファイルを $GF_HOME/glassfish/domains/domain1/lib に手動でコピーしようとしました (ここで、 mysql-connector はすでに存在します)。
ライブラリをコンテナーに「登録」する必要がありますか? 注釈経由で参照しますか? コンテナのクラスパスを拡張してライブラリを含めますか?