mongodb - java.lang.NoClassDefFoundError : com/mongodb/ServerAddress

标签 mongodb jpa-2.0 eclipselink java-ee-6 glassfish-3

我有一个带有 eclipselink 和 mongodb 的 jee6 应用程序。 我使用 nosql 扩展 org.eclipse.persistence.nosql

当我在本地 glassfish 实例上部署应用程序时,一切正常。

当我在远程 glassfish 上部署应用程序时,出现以下错误

glassfish 版本在两个位置都是相同的 mongodb 驱动程序 jar 位于 WEB-INF/lib

但是在远程服务器上我得到一个“java.lang.NoClassDefFoundError:com/mongodb/ServerAddress”

问题出在哪里???

[#|2012-12-03T19:19:36.281+0000|CONFIG|glassfish3.1.2|org.eclipse.persistence.session.file:/usr/glassfish3/glassfish3/glassfish/domains/domain1/applications/ForecastWebApp-0.0.1-SNAPSHOT/WEB-INF/classes/_forecastMongoDB.connection|_ThreadID=1306;_ThreadName=Thread-2;|connecting(EISLogin(
        platform=> MongoPlatform
        user name=> ""
        MongoConnectionSpec()
))|#]

[#|2012-12-03T19:19:36.288+0000|SEVERE|glassfish3.1.2|org.eclipse.persistence.session.file:/usr/glassfish3/glassfish3/glassfish/domains/domain1/applications/ForecastWebApp-0.0.1-SNAPSHOT/WEB-INF/classes/_forecastMongoDB.ejb|_ThreadID=1306;_ThreadName=Thread-2;|java.lang.NoClassDefFoundError: com/mongodb/ServerAddress
        at org.eclipse.persistence.internal.nosql.adapters.mongo.MongoConnectionFactory.getConnection(MongoConnectionFactory.java:74)
        at org.eclipse.persistence.eis.EISConnectionSpec.connectToDataSource(EISConnectionSpec.java:150)
        at org.eclipse.persistence.nosql.adapters.mongo.MongoConnectionSpec.connectToDataSource(MongoConnectionSpec.java:150)
        at org.eclipse.persistence.eis.EISLogin.connectToDatasource(EISLogin.java:73)
        at org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connectInternal(DatasourceAccessor.java:330)
        at org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:418)
        at org.eclipse.persistence.sessions.server.ConnectionPool.buildConnection(ConnectionPool.java:216)
        at org.eclipse.persistence.sessions.server.ConnectionPool.startUp(ConnectionPool.java:504)
        at org.eclipse.persistence.sessions.server.ServerSession.connect(ServerSession.java:484)
        at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.login(DatabaseSessionImpl.java:734)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:217)
        at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:542)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getDatabaseSession(EntityManagerFactoryDelegate.java:186)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:278)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:304)
        at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:282)
        at org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoader.java:211)
        at org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:120)

最佳答案

好的,我发现问题了

org.eclipse.persistence.nosql_2.4.1.v20121003-ad44345.jar 和 mongodb 驱动程序 jar 位于/WEB-INF/lib

但是在远程服务器上 org.eclipse.persistence.nosql_2.4.1.v20121003-ad44345.jar 也在 ../glassfish/modules directory 但这里没有 mongodb 驱动程序

当我删除org.eclipse.persistence.nosql_2.4.1.v20121003-ad44345.jar时 来自../glassfish/modules directory

或者

添加mongodb驱动jar 至../glassfish/modules directory

一切正常

关于mongodb - java.lang.NoClassDefFoundError : com/mongodb/ServerAddress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13690453/

相关文章:

mysql - eclipselink 和 mysql 的 GTID 复制

java - 如何在Java中将csv文件导入mongodb

php - 文档大小超过 32 MB 的 no-sql 数据库?

node.js - Mongoose 发现未返回完整集合

MongoDb:使用字符串作为 Id

java - 使用注释的 native hibernate/jpa 查询中标量值的问题

Hibernate 模式参数在@SequenceGenerator 注释中不起作用

java - 如何使用java在mongodb中使用类似查询获取所有记录

java - JPA 的 EntityManager 应该是 RequestScoped 吗?

java - JPA - 合并实体时 EclipseLink 对关系发出额外的 SELECT 请求