我在开始使用casabah来集成scala和mongoDb时遇到了问题。我使用Spring (STS)并导入了以下jar文件:
spring-data-mongodb-1.6.0.RELEASE.jar
com.mongodb.jar
casbah-Commons2.10-2.7.2.jar
casbah-query_2.10-2.7.2.jar
joda-time-2.1.jar
slf4j-api-1.7.7.jar
casbah-gridfs_2.10-2.5.0.jar
scalaj-collection_2.10-1.4.jar
slf4j-simple-1.7.7.jar
卡西巴核2.10-2.7.2.jar
mongo-2.10.0.jar
mongo-java-driver-2.10.0.jar
但是,我得到了一个错误。
错误:描述资源路径定位类型糟糕的符号引用。Implicits.class中的签名是指包com.mongodb中不可用的游标类型。它可能在当前类路径中完全丢失,或者类路径上的版本可能与编译Implicits.class时使用的版本不兼容。
我读了几篇文章说问题在于mongo驱动程序的版本,所以我也尝试使用mongo-java-driver-2.10.1.jar,但是它仍然给了我一个错误。
有人能帮我解决这个错误吗?
提前谢谢!
发布于 2014-10-14 08:26:43
看起来这是一个依赖问题。Casbah是建立在一个固定版本的Mongo Java驱动程序之上的,所以它依赖于特定的二进制兼容版本。
Casbah版本号应该都是相同的--上面主要有Casbah 2.7.2,但是gridfs版本是错误的:casbah-gridfs_2.10-2.5.0.jar。
此外,Casbah 2.7.2依赖于Mongo驱动程序的2.12.2版本,然而,Casbah的最新版本是2.7.3,它依赖于Mongo驱动程序的2.12.3版本。
为了简化这一点,有一个用于Casbah的所有依赖jar,它包含了最新版本的java驱动程序和所有其他相关的依赖项。或者,pom文件应该指向声明依赖项的所有依赖包。(由于Casbah被分成子包,所以casbah-公用设施列出了所有外部依赖项)。
https://stackoverflow.com/questions/26320955
复制相似问题