Jmeter- Java请求带有Spring Boot Java客户端的自定义采样器 - 抛出NoclassDeffoundError
Jmeter的书面Java自定义采样器将接受Jmeter工具中的字符串。我需要将其传递给Spring Boot应用程序,该应用程序是一个简单的Java客户端程序。一旦我打包了罐子,然后将其放在Jmeter的 /lib /ext文件夹中,在启动期间,我将获得以下问题。任何人都请为此提供帮助。
2022-04-18 22:56:39,865 DEBUG o.a.j.r.ClassFinder: BOOT-INF/classes/com/**/**/JmsSamplerClient (wrong name: com/**/**/JmsSamplerClient)
java.lang.NoClassDefFoundError: BOOT-INF/classes/com/**/**/JmsSamplerClient (wrong name: com/**/**/JmsSamplerClient)
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_192]
at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[?:1.8.0_192]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[?:1.8.0_192]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) ~[?:1.8.0_192]
at java.net.URLClassLoader.access$100(URLClassLoader.java:74) ~[?:1.8.0_192]
at java.net.URLClassLoader$1.run(URLClassLoader.java:369) ~[?:1.8.0_192]
at java.net.URLClassLoader$1.run(URLClassLoader.java:363) ~[?:1.8.0_192]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_192]
at java.net.URLClassLoader.findClass(URLClassLoader.java:362) ~[?:1.8.0_192]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_192]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_192]
at java.lang.Class.forName0(Native Method) ~[?:1.8.0_192]
at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_192]
at org.apache.jorphan.reflect.ClassFinder$ExtendsClassFilter.isChildOf(ClassFinder.java:100) ~[jorphan.jar:5.4.3]
at org.apache.jorphan.reflect.ClassFinder$ExtendsClassFilter.accept(ClassFinder.java:86) ~[jorphan.jar:5.4.3]
Written Java Custom Sampler of JMeter, which will accept a string from the JMeter tool. I need to pass this to a Spring Boot Application which is a simple Java client program. Once I packaged the jars, and I placed it in /lib/ext folder of JMeter, during startup I am getting the below issue. Any one please help on this.
2022-04-18 22:56:39,865 DEBUG o.a.j.r.ClassFinder: BOOT-INF/classes/com/**/**/JmsSamplerClient (wrong name: com/**/**/JmsSamplerClient)
java.lang.NoClassDefFoundError: BOOT-INF/classes/com/**/**/JmsSamplerClient (wrong name: com/**/**/JmsSamplerClient)
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_192]
at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[?:1.8.0_192]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[?:1.8.0_192]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) ~[?:1.8.0_192]
at java.net.URLClassLoader.access$100(URLClassLoader.java:74) ~[?:1.8.0_192]
at java.net.URLClassLoader$1.run(URLClassLoader.java:369) ~[?:1.8.0_192]
at java.net.URLClassLoader$1.run(URLClassLoader.java:363) ~[?:1.8.0_192]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_192]
at java.net.URLClassLoader.findClass(URLClassLoader.java:362) ~[?:1.8.0_192]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_192]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_192]
at java.lang.Class.forName0(Native Method) ~[?:1.8.0_192]
at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_192]
at org.apache.jorphan.reflect.ClassFinder$ExtendsClassFilter.isChildOf(ClassFinder.java:100) ~[jorphan.jar:5.4.3]
at org.apache.jorphan.reflect.ClassFinder$ExtendsClassFilter.accept(ClassFinder.java:86) ~[jorphan.jar:5.4.3]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
感谢大家的投入。
我通过将客户端程序更改为简单的非Spring Boot应用程序来解决此问题。之后,我将客户端程序jar放入jmeter lib/ext目录中,并将依赖的春季库放在jmeter的lib目录中。现在起作用。
Thanks everyone for your inputs.
I have resolved this issue by changing the client program to simple non spring boot application. After then, I placed the client program Jar into JMeter lib/ext directory and the dependent spring libraries to lib directory of JMeter. It worked now.
该错误说Jmeter找不到
boot-inf/class/com/**/**/jmssamplerclient
in jmeter classpath 因此,请确保在此处复制它并重新启动jmeter以获取更改。请告知:
lib/ext
文件夹适用于jmeter组件,lib
文件夹适用于依赖项,因此请相应地将“罐子”拆分,或将所有内容放入 Uber jar
还鉴于您的自定义采样器的性质是,您可以用 JSR223采样器获得相同的性能并删除编译和复制自定义采样器的开销。
The error says that JMeter cannot find
BOOT-INF/classes/com/**/**/JmsSamplerClient
class in JMeter Classpath so make sure to copy it there and restart JMeter to pick up the change.Going forward be informed that:
lib/ext
folder is for JMeter components and pluginslib
folder is for dependenciesso split your "jars" accordingly or put everything into an uber jar
Also given the nature of your custom sampler is that simple you could substitute it with JSR223 Sampler getting the same performance and removing overhead of compiling and copying custom sampler.