示例命令是 -
Jmeter-master:/tmp$ JMeterPluginsCMD.sh --generate-csv /tmp/test.csv --input-jtl /tmp/jmeter.jtl --plugin-type AggregateReport
這在更新 log4j 檔案后使用 .bat 檔案在 Windows 中有效,但不適用于 Linux 中的 .sh。我收到以下錯誤。還有其他人遇到這種情況嗎?順便說一句 - 它在一周前在 Linux 中運行良好,但在某個時候停止作業并且不記得進行任何重大更改。
錯誤:java.lang.NoClassDefFoundError:kg/apc/logging/LoggingUtils *** 問題的技術細節如下 *** 主目錄被檢測為:/opt/apache-jmeter-5.0/lib 執行緒“main”java 中的例外。 lang.NoClassDefFoundError: kg/apc/logging/LoggingUtils at kg.apc.cmdtools.ReporterTool.(ReporterTool.java:17) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/ jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.base/java.lang.reflect.Constructor newInstance(Constructor.java:490) at java.base/java.lang.Class.newInstance(Class.java:584) at kg.apc.cmdtools.PluginsCMD.getToolInstance(PluginsCMD.java:128) 在 kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:50) 在 kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:21) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (本機方法)在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.base /java.lang.reflect.Method.invoke(Method.java:566) at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:115) 引起:java.lang.ClassNotFoundException:kg.apc.logging.LoggingUtils在 java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589) 在 java.base/java.lang.ClassLoader.loadClass (ClassLoader.java:522) ... 14 更多PluginsCMD.processParams(PluginsCMD.java:50) at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:21) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/ jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method。 invoke(Method.java:566) at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:115) 由:java.lang.ClassNotFoundException: kg.apc.logging.LoggingUtils at java.base/java.net。 URLClassLoader.findClass(URLClassLoader.java:476) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) .. . 14 更多PluginsCMD.processParams(PluginsCMD.java:50) at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:21) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/ jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method。 invoke(Method.java:566) at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:115) 由:java.lang.ClassNotFoundException: kg.apc.logging.LoggingUtils at java.base/java.net。 URLClassLoader.findClass(URLClassLoader.java:476) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) .. . 14 更多cmdtools.PluginsCMD.processParams(PluginsCMD.java:21) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:622 ) 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.base/java.lang.reflect.Method.invoke(Method.java:566) 在 kg.apc.cmd。 UniversalRunner.main(UniversalRunner.java:115) 由:java.lang.ClassNotFoundException: kg.apc.logging.LoggingUtils at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476) at java.base/ java.lang.ClassLoader.loadClass(ClassLoader.java:589) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 14 更多cmdtools.PluginsCMD.processParams(PluginsCMD.java:21) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:622 ) 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.base/java.lang.reflect.Method.invoke(Method.java:566) 在 kg.apc.cmd。 UniversalRunner.main(UniversalRunner.java:115) 由:java.lang.ClassNotFoundException: kg.apc.logging.LoggingUtils at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476) at java.base/ java.lang.ClassLoader.loadClass(ClassLoader.java:589) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 14 更多NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.base/java.lang.reflect.Method.invoke(Method.java:566) at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:115) 引起:java.lang.ClassNotFoundException:kg.apc。 logging.LoggingUtils 在 java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589) 在 java.base/java.lang。 ClassLoader.loadClass(ClassLoader.java:522) ... 14 更多NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.base/java.lang.reflect.Method.invoke(Method.java:566) at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:115) 引起:java.lang.ClassNotFoundException:kg.apc。 logging.LoggingUtils 在 java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589) 在 java.base/java.lang。 ClassLoader.loadClass(ClassLoader.java:522) ... 14 更多DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:115) 引起: java.lang.ClassNotFoundException: kg.apc.logging.LoggingUtils at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:第 589 章DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:115) 引起: java.lang.ClassNotFoundException: kg.apc.logging.LoggingUtils at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:第 589 章loadClass(ClassLoader.java:589) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 14 更多loadClass(ClassLoader.java:589) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 14 更多
具體自動化步驟——
RUN curl -fsSL --compressed -o /tmp/jmeter.tgz https://dlcdn.apache.org//jmeter/binaries/$JMETER_VERSION.tgz \
&& tar -C /opt -xzf /tmp/jmeter.tgz \
&& rm /tmp/jmeter.tgz \
&& chmod w /opt/$JMETER_VERSION/lib \
&& curl -fsSL --compressed -o /opt/$JMETER_VERSION/lib/jmeter-plugins-cmn-jmeter-0.7-sources.jar https://search.maven.org/classic/remotecontent?filepath=kg/apc/jmeter-plugins-cmn-jmeter/0.7/jmeter-plugins-cmn-jmeter-0.7-sources.jar \
&& curl -fsSL --compressed -o /tmp/mysql-connector.tar.gz https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-6.0.3.tar.gz \
&& tar -C /opt/$JMETER_VERSION/lib -xzvf /tmp/mysql-connector.tar.gz --strip-components 1 mysql-connector-java-6.0.3/mysql-connector-java-6.0.3-bin.jar \
&& rm /tmp/mysql-connector.tar.gz \
&& curl -fsSL --compressed -o /opt/$JMETER_VERSION/lib/ext/jmeter-plugins-manager.jar https://jmeter-plugins.org/get \
&& curl -fsSL --compressed -o /opt/$JMETER_VERSION/lib/cmdrunner-$CMDRUNNER_VERSION.jar https://repo1.maven.org/maven2/kg/apc/cmdrunner/$CMDRUNNER_VERSION/cmdrunner-$CMDRUNNER_VERSION.jar \
&& java -cp /opt/$JMETER_VERSION/lib/ext/jmeter-plugins-manager.jar org.jmeterplugins.repository.PluginManagerCMDInstaller \
&& /opt/$JMETER_VERSION/bin/PluginsManagerCMD.sh install-all-except jpgc-hadoop,jpgc-oauth,ulp-jmeter-gwt-plugin,ulp-jmeter-autocorrelator-plugin,ulp-jmeter-videostreaming-plugin \
&& sleep 2 \
&& /opt/$JMETER_VERSION/bin/PluginsManagerCMD.sh status
uj5u.com熱心網友回復:
在java.lang.NoClassDefFoundError平時有事情做與Runtime Environment版本。嘗試檢查兩個 Java 版本是否相同。
如果它們不相等,請嘗試相應地在 Linux 系統上更新/降級您的版本。
如果它們相等,請嘗試檢查缺少的庫。
uj5u.com熱心網友回復:
我不知道“將 log4j 檔案更新到 2.17”是什么意思,你得到的錯誤是關于jmeter-plugins-cmn-jmeter在JMeter 類路徑中缺少.jar
如果您更喜歡手動 .jar 庫操作,您可以將您最喜歡的版本下載到 JMeter 安裝的“lib”檔案夾中,在下一次 JMeter 重新啟動或運行命令列圖形生成器工具時,錯誤應該會消失。
不過我會推薦:
- 使用JMeter 插件管理器而不是手動編排 JMeter 插件
- 使用最新版本的 JMeter而不是嘗試升級單個組件
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/397063.html
