Я написал приложение Maven, которое хочу использовать в своем скрипте Jmeter BeanShell. Приложение Maven использует Google Guice 4.2.2
для внедрения зависимостей и в конце вызывает API (код должен выполнить некоторые другие операции перед вызовом API, и поэтому я не использую плагин JMETER). Я создаю Uber JAR (FAT JAR) с maven-shade-plugin
. Когда я запускаю Jar из командной строки, приложение запускается успешно!
Однако, когда я загружаю JAR в свой план тестирования Jmeter и вызываю основной метод приложения в Jmeter BeanShell, я получаю следующую ошибку:
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
at com.google.inject.Key.ensureRetainedAtRuntime(Key.java:341) ~[load-testing.jar:?]
.
.
.
Теперь многие другие темы упоминали, что это может быть из-за более старой версии Google Guiva (20.x старше), но из дерева зависимостей я вижу, что версия Guava 25.1-android
, и я могу запустить свойJAR успешно из командной строки !!
Также я перечисляю классы в Uber JAR командой runnung jar -tf
, и я вижу, что класс com.google.common.base.Preconditions
есть.
Буду ли я признателен, если кто-нибудь сможет затенить свет в этом вопросе и поможет мне решить эту проблему?