【发布时间】:2022-01-27 09:23:03
【问题描述】:
一个示例命令是 -
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 在 kg.apc.cmdtools.ReporterTool.(ReporterTool.java:17) 在 java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native 方法) 在 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) 在 java.base/java.lang.Class.newInstance(Class.java:584) 在 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(Native 方法) 在 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) 在 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 更多
具体的自动化步骤 -
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
尝试执行 JMeterPluginsCMD.sh 时出错 -
2021-12-30 13:03:12,008 WARN o.j.r.Plugin: Unable to load class: nz.co.breakpoint.jmeter.vizualizers.sshmon.SSHMonCollector
java.lang.NoClassDefFoundError: kg/apc/jmeter/vizualizers/MonitoringResultsCollector
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:1017) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) ~[?:?]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:555) ~[?:?]
at java.net.URLClassLoader$1.run(URLClassLoader.java:458) ~[?:?]
at java.net.URLClassLoader$1.run(URLClassLoader.java:452) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at java.net.URLClassLoader.findClass(URLClassLoader.java:451) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:589) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
at org.jmeterplugins.repository.Plugin.getJARPath(Plugin.java:202) [jmeter-plugins-manager.jar:?]
at org.jmeterplugins.repository.Plugin.detectInstalledPlugin(Plugin.java:108) [jmeter-plugins-manager.jar:?]
at org.jmeterplugins.repository.Plugin.detectInstalled(Plugin.java:97) [jmeter-plugins-manager.jar:?]
at org.jmeterplugins.repository.PluginManager.load(PluginManager.java:86) [jmeter-plugins-manager.jar:?]
at org.jmeterplugins.repository.PluginManager.getStaticManager(PluginManager.java:344) [jmeter-plugins-manager.jar:?]
at org.jmeterplugins.repository.PluginManager.getAllPluginsStatus(PluginManager.java:370) [jmeter-plugins-manager.jar:?]
at org.jmeterplugins.repository.PluginManagerCMD.processParams(PluginManagerCMD.java:72) [jmeter-plugins-manager.jar:?]
at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:62) [cmdrunner-2.2.jar:?]
at kg.apc.cmdtools.PluginsCMD.processParams(PluginsCMD.java:21) [cmdrunner-2.2.jar:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at kg.apc.cmd.UniversalRunner.main(UniversalRunner.java:115) [cmdrunner-2.2.jar:?]
Caused by: java.lang.ClassNotFoundException: kg.apc.jmeter.vizualizers.MonitoringResultsCollector
at java.net.URLClassLoader.findClass(URLClassLoader.java:476) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:589) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?]
... 24 more
【问题讨论】:
-
如果不清楚,我相信这在更新 log4j 文件后可以在 Linux 中运行,但在此之后由于未知原因而中断。