首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现Jmeter java请求: ClassNotFoundException

实现Jmeter java请求: ClassNotFoundException
EN

Stack Overflow用户
提问于 2020-12-24 11:11:04
回答 2查看 82关注 0票数 0

我在我的自定义项目pom中使用了jmeter 5.0的依赖项。

代码语言:javascript
复制
<!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_core -->
<dependency>
    <groupId>org.apache.jmeter</groupId>
    <artifactId>ApacheJMeter_core</artifactId>
    <version>5.0</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_java -->
<dependency>
    <groupId>org.apache.jmeter</groupId>
    <artifactId>ApacheJMeter_java</artifactId>
    <version>5.0</version>
</dependency>

编译后,我将jar复制到jmeter5.0源项目中的lib/ext,并通过运行NewDriver进行调试,然后我在Class.forName(strClassName, false, contextClassLoader)抛出异常java.lang.ClassNotFoundException: com.xxxx.xxxx中找到了函数org.apache.jorphan.reflect.ClassFinder.ExtendsClassFilter#isChildOfstrClassName打印了我自己的类,所以这意味着我的类已经被扫描了?

代码语言:javascript
复制
private final ClassLoader contextClassLoader
    = Thread.currentThread().getContextClassLoader(); // Potentially expensive; do it once

private boolean isChildOf(
        Class<?>[] parentClasses, String strClassName, ClassLoader contextClassLoader) {
    try {

        // Here is exception line
        Class<?> targetClass = Class.forName(strClassName, false, contextClassLoader);

        if (!targetClass.isInterface()
                && !Modifier.isAbstract(targetClass.getModifiers())) {
            return Arrays.stream(parentClasses)
                    .anyMatch(parent -> parent.isAssignableFrom(targetClass));
        }
    } catch (UnsupportedClassVersionError | ClassNotFoundException
            | NoClassDefFoundError | VerifyError e) {
        log.debug(e.getLocalizedMessage(), e);
    }
    return false;
}

我的代码

代码语言:javascript
复制
public class JmeterSupportTest extends AbstractJavaSamplerClient {
  xxxx;
}

任何人都可以提供帮助!

EN

回答 2

Stack Overflow用户

发布于 2020-12-25 11:25:39

现在可以了。没有添加依赖jars的插件编译的原因,以及配置pom添加maven-assembly-plugin将解决

票数 0
EN

Stack Overflow用户

发布于 2020-12-26 22:05:03

  1. 如果您的Java请求采样器实现中使用了任何额外的库-它们应该转到JMeter安装的"lib“文件夹(有关更多详细信息,请参见JMeter Classpath用户手册),或者您可以考虑使用例如Maven Shade plugin来创建包含所有dependencies
  2. According to JMeter Best Practices的"uber”或“JMeter Classpath”.jar。您应该始终使用最新版本的JMeter,因此请考虑在下一个可用的opportunity

H110<上升级到JMeter 5.4 (或JMeter Downloads页面上提供的任何最新稳定版本除了第2点之外,您从Github提取的是/code>In (除非您切换到v5_0 tag,否则请确保源文件与JMeter依赖项匹配,以防每个版本的源代码都可以在JMeter Archives page上找到

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65433507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档