由于适当的Apache Camel MQTT组件,我试图发布到MQTT主题。
所以在我的spring上下文XML中我有以下内容:
<camel:to uri="mqtt:test?host=ssl://myhost:8883&publishTopicName=test&userName=test&password=test"/>
但我在启动时遇到以下错误:
无法为端点创建Producer: 端点[MQTT:测试主机= SSL://为myhost:8883&安培; publishTopicName =试验&安培;用户名=试验&安培;密码=试验]。原因: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属性。
有人已经遇到过这个问题吗?在使用带有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个
答案 0 :(得分:0)
通过javax.net.debug = ssl进行调试非常有用。
实际上java.security上存在一个问题,其中security.provider属性未正确设置。这是为了与另一个应用程序相关的测试目的而手动更改
因为,一切都很好。对不起与内部特定错误相关的帖子。
亚历克斯。