JMETER 错误 - 无法加载信任存储:/var/tmp/jre1.8.0_281/lib/security/cacerts - 由 java.io.FileNotFoundException 引起

问题描述

我正在尝试从我的 Linux VM 运行测试,但在与 Solace broker 建立 SSL 连接时遇到以下错误

javax.naming.NamingException:无法加载信任存储:/var/tmp/jre1.8.0_281/lib/security/cacerts - 由 java.io.FileNotFoundException 引起 - /var/tmp/jre1.8.0_281/lib /security/cacerts(是一个目录)[根异常是 com.solacesystems.jcsmp.InvalidPropertiesException:无法加载信任存储:/var/tmp/jre1.8.0_281/lib/security/cacerts]

我在 system.properties 中使用以下配置运行脚本

java.naming.factory.initial = com.solacesystems.jndi.solJNDIInitialContextFactory
java.naming.provider.url = tcps://username:password@hostname
Solace_JMS_VPN = QA
Solace_JMS_Authentication_Scheme = AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE
Solace_JMS_SSL_KeyStore = var/tmp/kestore.jks
Solace_JMS_SSL_KeyStorePassword = pwd
Solace_JMS_SSL_TrustStore = /var/tmp/certs/truststore.jks
Solace_JMS_SSL_TrustStorePassword = pwd
Solace_JMS_JNDI_ConnectRetries = 1
Solace_JMS_JNDI_ClientDescription = PnV_Jmeter

解决方法

您的 JDK 安装很可能有问题,如 The Java Developer’s Guide to SSL Certificates 文章所述:

信任库

信任库是一个文件,其中包含颁发 GoDaddy、Verisign、Network Solutions 等证书的证书颁发机构 (CA) 的根证书。

信任库与 JDK/JRE 捆绑在一起,位于 $JAVA_HOME/lib/security/cacerts

每当我们的 Java 代码通过 SSL 建立连接时,就会使用信任库。

根据您收到的错误信息,/var/tmp/jre1.8.0_281/lib/security/cacerts 是一个文件夹,而它必须是文件。

因此,我建议您仔细检查 JRE 安装的完整性,并最终执行全新安装,因为它似乎以某种方式损坏了

您可能还对 Building a JMS Testing Plan - Apache JMeter 篇文章感兴趣