Jmeter- Java请求带有Spring Boot Java客户端的自定义采样器 - 抛出NoclassDeffoundError

发布于 2025-01-22 06:32:42 字数 1662 浏览 5 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

静若繁花 2025-01-29 06:32:42

感谢大家的投入。

我通过将客户端程序更改为简单的非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.

内心旳酸楚 2025-01-29 06:32:42

该错误说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 plugins
  • lib folder is for dependencies

so 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文