Apache camel / MQTT通过SSL:无法为端点创建Producer(java.lang.NullPointerException)

时间:2017-01-05 15:51:14

标签: ssl apache-camel mqtt

由于适当的Apache Camel MQTT组件,我试图发布到MQTT主题。

所以在我的spring上下文XML中我有以下内容:

<camel:to uri="mqtt:test?host=ssl://myhost:8883&amp;publishTopicName=test&amp;userName=test&amp;password=test"/>

但我在启动时遇到以下错误:

  

无法为端点创建Producer:   端点[MQTT:测试主机= SSL://为myhost:8883&安培; publishTopicName =试验&安培;用户名=试验&安培;密码=试验]。原因: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属性。

有人已经遇到过这个问题吗?在使用带有ssl的camel mqtt组件时,是否有一些东西要专门添加在spring DSL配置文件中?

编辑: NPE的堆栈跟踪:

  

引起:java.lang.NullPointerException at   org.fusesource.hawtdispatch.transport.SslTransport.connecting(SslTransport.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个

1 个答案:

答案 0 :(得分:0)

通过javax.net.debug = ssl进行调试非常有用。

实际上java.security上存在一个问题,其中security.provider属性未正确设置。这是为了与另一个应用程序相关的测试目的而手动更改

因为,一切都很好。对不起与内部特定错误相关的帖子。

亚历克斯。