通过SSL的Apache camel/MQTT:未能为端点(java.lang.NullPointerException)创建生产者
由于使用了适当的apachecamel MQTT组件,我正在尝试发布到MQTT主题 因此,在我的spring上下文XML中,我有以下内容:通过SSL的Apache camel/MQTT:未能为端点(java.lang.NullPointerException)创建生产者,ssl,apache-camel,mqtt,Ssl,Apache Camel,Mqtt,由于使用了适当的apachecamel MQTT组件,我正在尝试发布到MQTT主题 因此,在我的spring上下文XML中,我有以下内容: <camel:to uri="mqtt:test?host=ssl://myhost:8883&publishTopicName=test&userName=test&password=test"/> 但我在启动时遇到以下错误: 未能为终结点创建生产者: 端点[mqtt:测试?主机=ssl:/
<camel:to uri="mqtt:test?host=ssl://myhost:8883&publishTopicName=test&userName=test&password=test"/>
但我在启动时遇到以下错误:
未能为终结点创建生产者:
端点[mqtt:测试?主机=ssl://myhost:8883&publishTopicName=test&userName=test&password=test]. 原因:java.lang.NullPointerException
不使用ssl时一切正常,以下配置(常规tcp而不是ssl)正常工作:
<camel:to uri="mqtt:test?host=tcp://myhost:1883&publishTopicName=test&userName=test&password=test"/>
我添加了javax.net.ssl.trustStore JVM属性,该属性指向我的证书存储,但没有任何效果
有人已经遇到这个问题了吗?当将camel mqtt组件与ssl一起使用时,spring DSL配置文件中是否特别添加了一些内容
编辑:
NPE的堆栈跟踪:
原因:java.lang.NullPointerException位于
org.fusesource.hawtdispatch.transport.sslttransport.connecting(sslttransport.java:194)
在
org.fusesource.mqtt.client.CallbackConnection.createTransport(CallbackConnection.java:285)
在
org.fusesource.mqtt.client.CallbackConnection.connect(CallbackConnection.java:138)
在
org.apache.camel.component.mqtt.MQTTEndpoint.connect(MQTTEndpoint.java:305)
在
org.apache.camel.component.mqtt.MQTTProducer.doStart(MQTTProducer.java:38)
在
org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
在
org.apache.camel.impl.DefaultCamelContext.startService(DefaultCamelContext.java:3219)
在
org.apache.camel.impl.DefaultCamelContext.doAddService(DefaultCamelContext.java:1209)
在
org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:1170)
在
org.apache.camel.impl.ProducerCache.doGetProducer(ProducerCache.java:442)
... 33多
通过javax.net.debug=ssl进行调试非常有用 实际上,java.security上存在一个问题,没有正确设置security.provider属性。为了与另一个应用程序相关的测试目的而手动更改 因为,一切都很好。对于与内部特定错误相关的帖子,我深表歉意
亚历克斯 您可以添加
javax.net.debug=ssl
以在日志中查看ssl通信的实际情况。幕后可能有很多原因,这取决于对主机的SSL要求。i、 e.服务器证书、客户端证书、双向SSL情况下的私钥等……您能否将stacktrace与NPE一起发布,并告诉我们您使用的Camel版本我使用的是Camel版本2.16.0。我已经编辑了最初的帖子,添加了与此NPE相关的stacktrace。我还将添加javax.net.debug=ssljava属性,以了解有关该问题的更多信息。谢谢