2014-10-12 159 views
1

我在開始使用casabah來整合scala和mongoDb時遇到問題。我使用Spring工具套件(STS)和進口下列jar文件:包含casbah依賴關係時出錯

彈簧數據的MongoDB-1.6.0.RELEASE.jar

com.mongodb.jar

卡斯巴-commons_2。 10-2.7.2.jar

卡斯巴-query_2.10-2.7.2.jar

喬達 - 時間 - 2.1.jar

SLF4J-API-1.7.7.jar

卡斯巴-gridfs_2.10-2.5.0.jar

scalaj-collection_2.10-1.4.jar

SLF4J-簡單1.7.7.jar

卡斯巴-core_2.10- 2.7.2.jar

蒙戈 - 2.10.0.jar

蒙戈-Java的應用程序,2.10.0.jar

但是,我得到一個錯誤。

錯誤:描述資源路徑位置類型壞的符號引用。 Implicits.class中的簽名指的是com.mongodb包中的Cursor類型,它不可用。它可能完全缺少當前類路徑,或者類路徑上的版本可能與編譯Implicits.class時使用的版本不兼容。

我讀了幾篇文章,說問題是在mongo-java-driver中的版本,所以我嘗試了mongo-java-driver-2.10.1.jar,但它仍然給我一個錯誤。

有人能幫我解決這個錯誤嗎?

非常感謝!

回答

1

它看起來像它的依賴性問題。 Casbah建立在Mongo Java驅動程序的固定版本之上,因此依賴於特定的二進制兼容版本。

Casbah版本號應該全部相同 - 上面主要有Casbah 2.7.2,但是gridfs版本不對:casbah-gridfs_2.10-2.5.0.jar

此外,Casbah 2.7.2依賴於Mongo Java Driver的版本2.12.2,但是,最新版本的Casbah是2.7.3,它依賴於Mongo Java Driver的版本2.12.3。

爲了使這個更簡單,Casbah有一個all dependencies jar,包括最新版本的java驅動程序和所有其他相關的依賴項。或者,pom file應該指出聲明其依賴關係的所有依賴包。 (由於Casbah被拆分成子包,因此casbah-commons pom列出了所有外部依賴項)。