kettle无法连接mongodb怎么办
配置好mongodb连接之后,点击预览报下面的错:
报错:
java.lang.NoClassDefFoundError:javax/crypto/spec/PBEKeySpec atcom.mongodb.DBPort$ScramSha1Authenticator$ScramSha1SaslClient.Hi(DBPort.java:822) atcom.mongodb.DBPort$ScramSha1Authenticator$ScramSha1SaslClient.computeClientFinalMessage(DBPort. java:747) atcom.mongodb.DBPort$ScramSha1Authenticator$ScramSha1SaslClient.evaluateChallenge(DBPort.java:681) atcom.mongodb.DBPort$SaslAuthenticator.authenticate(DBPort.java:904) atcom.mongodb.DBPort.authenticate(DBPort.java:432) atcom.mongodb.DBPort.checkAuth(DBPort.java:443) atcom.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:289) atcom.mongodb.DBTCPConnector.call(DBTCPConnector.java:269) atcom.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:84) atcom.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:66) atcom.mongodb.DBCursor._check(DBCursor.java:498) atcom.mongodb.DBCursor._hasNext(DBCursor.java:621) atcom.mongodb.DBCursor.hasNext(DBCursor.java:657) atorg.pentaho.mongo.wrapper.cursor.DefaultCursorWrapper.hasNext(DefaultCursorWrapper.java:34) atorg.pentaho.di.trans.steps.mongodbinput.MongoDbInput.processRow(MongoDbInput.java:89) atorg.pentaho.di.trans.step.RunThread.run(RunThread.java:62) atjava.lang.Thread.run(Thread.java:745) Causedby:java.lang.ClassNotFoundException:javax.crypto.spec.PBEKeySpecnotfoundbyorg.mongodb.mongo- java-driver [59] atorg.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl. java:1532) atorg.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75) atorg.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955) atjava.lang.ClassLoader.loadClass(ClassLoader.java:358) ...17more
解决办法:
kettle安装文件目录:data-integration\system\karaf\etc\config.properties
文件中下部有一行 org.osgi.framework.bootdelegation=(一堆参数)
在末尾处加上 ,javax.crypto,javax.crypto.*
Mongo就可以正常连接读取数据了。
python学习网,大量的免费MongoDB入门教程,欢迎在线学习!
本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.