EJB3 uygulamamdan Glassfish 3.0.1 üzerinde çalışan bir MongoDB örneğine bağlanmam gerekiyor. Mongo projesi bir dizi sürücü sağlıyor ve bunları bağımsız bir Java uygulamasında kullanabiliyorum.Glassfish'te 3. parti kütüphaneleri nasıl kullanılır?
Bunları bir Java EE uygulamasında nasıl kullanırım? Ya da belki daha iyi bir ifadeyle: bir EJB konteynerinde çalışırken uygulamam için bir 3. parti kütüphanesi nasıl kullanılabilir olur? Şu anda
, ben çalışır kütüphaneden ithal etmek bir fasulye dağıtmanın Java.lang.NoClassDefFoundError alıyorum:[#|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 proje eklemeden çalıştı (Özellikleri -> Kütüphaneler -> Derleme -> Jar ekle, 'Package' seçeneğini etkinleştir ve ayrıca jar dosyasını $ GF_HOME/glassfish/domain/domain1/lib (burada mysql-connector zaten ikamet ediyor) olarak kopyalamayı denedim.
Kitaplığı kapsayıcıya 'kaydettirmem' gerekir mi? Annotation ile referans mı? Kütüphaneyi dahil etmek için kapsayıcı sınıf yolunu uzatmak?
@Pascal: thank you! Bunu ben de denedim sandım. Her neyse, bir çekicilik gibi çalışır. Bu iyi bir yol mu? Bu dağıtımın bir parçası olmamalı mı? – Hank
@Hank MongoDB sürücüsünün nasıl kullanıldığını bilmiyorum, ancak konteyner tarafından kullanılmıyorsa (JDBC sürücüsü bir bağlantı havuzu oluşturmak gibi) veya etki alanı uygulamaları arasında paylaşılmıyorsa, belki de paketlemelisiniz uygulamanızın içinde. –