jMeter自定义jar导入问题

时间:2016-08-11 21:21:42

标签: jmeter beanshell

我有一个包含大量依赖关系的大项目打包为'jar-with-dependencies.jar'。我把这个jar放在jmeter的/ lib文件夹中。

当我尝试启动Jmeter并打开jmx文件时,我得到未捕获的异常错误,如

Uncaught Exception java.lang.NoSuchMethodError: com.thoughtworks.xstream.core.JV
M.newReflectionProvider()Lcom/thoughtworks/xstream/converters/reflection/Reflect
ionProvider;.See log file for details.

我计划编写一个BeanShell Java代码,该代码将使用导入的自定义jar中的功能。我是否以正确的方式进口罐子?有没有其他方法可以导入jar?

1 个答案:

答案 0 :(得分:2)

此类包含在xstream.jar中,JMeter已有自己的xstream.jar版本(JMeter 2.13和3.0包含xstream-1.4.8.jar)。

现在,如果您的带依赖关系的Jar有另一个版本的xstream.jar,那么您将在lib文件夹中拥有该文件的2个版本。 And that's not good

  

行为未确定,仅在运行时将选择两个类中的一个。选择哪一个取决于类加载器的内部实现,没有办法预先知道。

所以你需要删除其中一个文件。哪一个很棘手

  • 通常保留较新版本是一种更安全的选择。所以我从那开始。如果它的工作 - 很棒。
  • 如果它不起作用,请尝试相反的方法(尽管我怀疑您看到的错误来自此软件包的某些旧版本)
  • 如果第二种方法不起作用,则必须打开自定义jar的代码,并将其更新为与JMeter兼容(xstream.jar的更新版本与JMeter使用的相同,并且更新任何损坏的代码)。或者您可以尝试this solution