jmeter - 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
解决方案
根据The Java Developer's Guide to SSL Certificates文章,您的 JDK 安装很可能有问题:
信任库
信任库是一个文件,其中包含颁发证书的证书颁发机构 (CA) 的根证书,例如 GoDaddy、威瑞信、网络解决方案等。
信任库与 JDK/JRE 捆绑在一起,位于
$JAVA_HOME/lib/security/cacerts
.每当我们的 Java 代码通过 SSL 建立连接时,都会使用信任库。
根据您收到的错误,这/var/tmp/jre1.8.0_281/lib/security/cacerts
是一个文件夹,而它必须是文件。
因此,我建议仔细检查 JRE 安装的完整性并最终执行全新安装,因为它似乎以某种方式被破坏
推荐阅读
- node.js - 如何在 Node.js 中获取现有服务器的实例?
- ssl - SSL 证书/模块错误 - pip 19.2.3 - Anaconda 提示
- python - 如何等待写入文本文件,逐行读取更改并打印?
- android-webview - Javascript注入出错
- python - 如何在python中将ndarray转换为整数
- python - 如何将用户输入保存到文本文件
- flutter - 颤振 - 以相反方向圆形边框
- javascript - 如何使用 axios 将文件上传到 Dropbox
- javascript - 使用 Knex,如何将连接表的相关行作为嵌套对象给出?
- python - 从类中向 Pandas DataFrame 添加列