You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter在Linux虚拟机中连接Solace Broker时出现信任存储加载FileNotFound异常

异常根因拆解

报错为两个连锁触发的问题:

  1. 客户端实际加载的信任库路径并非你配置文件中指定的/var/tmp/certs/truststore.jks,而是自动回退到JRE默认的信任库路径/var/tmp/jre1.8.0_281/lib/security/cacerts,证明你自定义的SSL信任库配置没有被客户端成功识别
  2. JRE路径下的cacerts是目录而非证书库文件,触发文件类型不匹配的FileNotFoundException异常
触发问题的具体诱因

逐一对照你提供的配置排查,可定位到以下几处可触发配置失效的问题:

  • 配置路径书写存在硬错误:你配置的Solace_JMS_SSL_KeyStore值为var/tmp/kestore.jks,缺失根路径前缀斜杠/,属于相对路径,运行时会基于脚本启动目录定位文件,必然无法找到实体;同时存在拼写错误,kestore.jks为笔误,正确拼写应为keystore.jks
  • SSL配置块整体加载失败:Solace客户端的SSL配置为整体加载逻辑,只要配置块中任意一个参数解析失败,就会放弃加载整个自定义SSL配置块,直接回退到JVM默认的证书加载逻辑——这也是为什么你在配置中写的Solace_JMS_SSL_TrustStore绝对路径没有被识别的核心原因
  • 属性匹配失效:Solace JMS客户端对SSL配置项的key匹配为严格大小写校验,如果配置文件中属性值前后带不可见空格、或者属性未正确传入JNDI初始上下文的环境参数中(而非仅设置为全局系统属性),会进一步加剧配置失效的概率
  • JRE内置路径异常:报错明确提示目标路径Is a directory,说明该路径下的cacerts并非JRE默认的二进制证书库文件,是之前操作误创建的同名文件夹,即使客户端走到默认加载逻辑,也会因为文件类型不匹配直接抛错
分步落地解决方案
  • 修正配置文件的路径与拼写问题
    • 将Solace_JMS_SSL_KeyStore的取值调整为绝对路径、拼写正确的实体文件,比如修正为Solace_JMS_SSL_KeyStore = /var/tmp/certs/keystore.jks
    • 逐一确认Solace_JMS_SSL_TrustStore、Solace_JMS_SSL_KeyStore指向的JKS文件真实存在,且对脚本运行用户开放可读权限,提前用keytool -list -keystore 对应文件路径验证文件可正常加载、密码匹配有效
  • 校验配置加载链路
    • 检查properties文件中所有配置项的前后是否存在多余空格、不可见字符,避免客户端因key字符串不匹配识别不到配置
    • 若使用JMeter等测试工具运行脚本,需确认上述SSL配置项是作为JNDI初始上下文的入参传入,而非仅设置为JVM全局系统属性——部分场景下JMS连接工厂初始化时不会自动拉取全局系统属性的SSL配置,会直接走默认加载逻辑
  • 修复JRE内置路径的异常实体
    • 执行ls -ld /var/tmp/jre1.8.0_281/lib/security/cacerts确认文件类型,如果确为目录,先备份后删除该目录,从官方对应版本的JRE安装包中提取原始cacerts证书库文件放到对应路径,避免客户端回退逻辑触发文件类型不匹配的异常

内容的提问来源于stack exchange,提问作者DK6791

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.25 12:24:04