2016-08-11 82 views
1

我有一個很大的項目,有大量的依賴關係打包爲'jar-with-dependencies.jar'。我把這個jar放在jmeter的/ lib文件夾中。jMeter自定義jar導入問題

當我嘗試啓動的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代碼。我是否以正確的方式導入罐子?有沒有其他的方式來導入罐子?

回答

2

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

現在,如果具有依賴關係的JAR具有其他版本的xstream.jar,則您將在lib文件夾中擁有該文件的兩個版本。 And that's not good

行爲是未確定的,只有在運行時纔會選擇兩個類中的一個。選擇哪一個取決於類加載器的內部實現,無法預先知道。

所以你需要刪除其中的一個文件。哪一個是棘手的

  • 通常保持較新的版本是一個更安全的選擇。所以我會從那開始。如果它有效 - 太好了。如果第二種方法不起作用,你將不得不開放您的自定義jar的代碼,並將其更新爲與JMeter兼容(更新xstream.jar的版本與JMeter使用的版本相同,並更新任何損壞的代碼)。或者你可以試試this solution