我正在尝试使用信任存储区通过安全连接连接到消息传递提供程序,但无法这样做。
我可以不安全地连接并发布消息而没有问题,但当我通过安全协议连接时,它不工作。
检索JNDI时收到错误
javax.jms.JMSException: Could not create InitialContext: JNDI setup failed on RNAME=nsps://server1.domain.internal:9001
at hermes.JNDIContextFactory.createContext(JNDIContextFactory.java:282)
at hermes.ext.HermesAdminSupport.discoverDestinationConfigs(HermesAdminSupport.java:441)
at hermes.impl.HermesAdminAdapter.discoverDestinationConfigs(HermesAdminAdapter.java:82)
at hermes.impl.DefaultHermesImpl.discoverDestinationConfigs(DefaultHermesImpl.java:1126)
at hermes.browser.tasks.DiscoverDestinationsTask.invoke(DiscoverDestinationsTask.java:77)
at hermes.browser.tasks.TaskSupport.run(TaskSupport.java:175)
at hermes.browser.tasks.ThreadPool.run(ThreadPool.java:170)
at java.lang.Thread.run(Thread.java:745)它通过Jmeter工作,使用相同的信任存储和密码,因此这一切都是有效和正确的。
似乎在通过hermes.bat启动Hermes时,它没有检测到我添加到启动程序中的参数,因此它没有使用信任库
我已经更新了脚本,启动程序的代码行是:
"C:\Program Files (x86)\Java\jdk1.7.0_75\bin\javaw" -XX:NewSize=256m -Xmx1024m -Dhermes.home="%HERMES_HOME%" %HERMES_OPTS% -Dlog4j.configuration="file:%HERMES_HOME%\bin\log4j.props" -Dsun.java2d.noddraw=true -Dhermes="%HERMES_CONFIG%\hermes-config.xml" -Dhermes.libs="%HERMES_LIBS%"\ext hermes.browser.HermesBrowser -Djavax.net.ssl.trustStore="file:%HERMES_LIBS%\alexTruststore.jks" -Djavax.net.ssl.trustStorePassword=manage我尝试了javax.net.ssl.trustStore(密码)参数的各种组合,但都不起作用
谢谢!
发布于 2019-07-10 21:06:46
这很容易遗漏;您需要在主类声明之前传递信任库参数。实际上,您已经调用了HermesBrowser类,并将两个参数传递给了它的main方法。
您想要的是使用适当的jks参数调用javaw.exe。
例如,这应该是可行的:
"C:\Program Files (x86)\Java\jdk1.7.0_75\bin\javaw" ^
-Djavax.net.ssl.trustStore="file:%HERMES_LIBS%\alexTruststore.jks" ^
-Djavax.net.ssl.trustStorePassword=manage ^
-XX:NewSize=256m ^
-Xmx1024m ^
-Dhermes.home="%HERMES_HOME%" ^
%HERMES_OPTS% ^
-Dlog4j.configuration="file:%HERMES_HOME%\bin\log4j.props" ^
-Dsun.java2d.noddraw=true ^
-Dhermes="%HERMES_CONFIG%\hermes-config.xml" ^
-Dhermes.libs="%HERMES_LIBS%"\ext ^
hermes.browser.HermesBrowserhttps://stackoverflow.com/questions/52669744
复制相似问题