【问题标题】:groovy.lang.MissingMethodException: No signature of method: static com.mongodb.MongoCredential.createScramSha1Credential()groovy.lang.MissingMethodException:没有方法签名:静态 com.mongodb.MongoCredential.createScramSha1Credential()
【发布时间】:2018-05-05 22:56:05
【问题描述】:

我正在尝试使用带有 groovy 的 JSR 223 采样器连接到 mongodb。签名看起来完全正常,脚本在 JMETER 中运行良好。但是它在通过 maven 执行它时会引发错误。下面是代码:

===================

MongoCredential mongoCredential = MongoCredential.createScramSha1Credential("PIDPCR","adm",'pRU6Ref'.toCharArray()); coreMongoClient = new MongoClient(new ServerAddress("${addr}", 27017),Arrays.asList(mongoCredential));

==================

下面是抛出的错误:

javax.script.ScriptException: javax.script.ScriptException: groovy.lang.MissingMethodException: 没有方法签名: static com.mongodb.MongoCredential.createScramSha1Credential() 适用于参数类型: (java.lang.String, java .lang.String, [C) 值:

【问题讨论】:

  • 听起来你没有正确安装jar。清除所有内容,检查 pom.xml 中的“官方”和相关来源,然后再次获取所有依赖项。并且实际上使用 maven,以防您以前认为复制下载的文件是可以的。
  • 我已经添加了依赖项,并且我有另一个不需要身份验证的 mongodb 服务器,我不必使用 mongoCredential,在这种情况下它可以正常工作。
  • 我们向您提到这一点的原因(两次)是因为当编译的代码和安装在 jar 中的库与最初引用的库不匹配时,这通常是导致错误的原因。所以你肯定在那里打破了一些东西。提供的答案是最可能的原因。检查所有类路径值并确保只有预期的 jar 实际存在。
  • 感谢 Neil,Jmeter 插件正在自动下载旧版本的 Mongodb 驱动程序。我使用 标签排除了旧版本。它现在正在工作。感谢您的帮助。
  • 是的,它成功了!谢谢@Ubik。我已经做了!非常感谢!

标签: mongodb maven jmeter mongo-java-driver jmeter-maven-plugin


【解决方案1】:

JMeter 嵌入了旧版本的 mongo-java-driver-2.11.3.jar。

因此,请确保将其删除并添加适用于您的代码的版本。

要排除,您可以按照documentation 使用此标签:

【讨论】:

  • 我已经在 jmerter lib/ext 文件夹中保存了 monog-java-driver 3.6.3 并且还在 pom.xml 中添加了依赖
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
  • 2017-04-08
  • 1970-01-01
相关资源
最近更新 更多