Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过SSL的Apache camel/MQTT:未能为端点(java.lang.NullPointerException)创建生产者_Ssl_Apache Camel_Mqtt - Fatal编程技术网

通过SSL的Apache camel/MQTT:未能为端点(java.lang.NullPointerException)创建生产者

通过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&amp;publishTopicName=test&amp;userName=test&amp;password=test"/> 但我在启动时遇到以下错误: 未能为终结点创建生产者: 端点[mqtt:测试?主机=ssl:/

由于使用了适当的apachecamel MQTT组件,我正在尝试发布到MQTT主题

因此,在我的spring上下文XML中,我有以下内容:

<camel:to uri="mqtt:test?host=ssl://myhost:8883&amp;publishTopicName=test&amp;userName=test&amp;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&amp;publishTopicName=test&amp;userName=test&amp;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属性,以了解有关该问题的更多信息。谢谢