一、该问题的重现步骤是什么?
1. 按照教程构建新的topic
2. 在test 处订阅发布消息
3. 新写的
CustomHoistPostFunction
方法报错
2025-01-02 15:47:04.380 INFO 27784 --- [ biz-worker-9] o.s.m.b.d.f.c.CustomHoistPostFunction : 自定义topic上报数据:{currentLevel=2, targetLevel=5}
2025-01-02 15:47:04.380 ERROR 27784 --- [ biz-worker-9] o.s.m.b.d.f.c.CustomHoistPostFunction : req id:1e42776050ee34856173a1f8b51e6dc0 property post error
java.lang.NullPointerException: Cannot invoke "org.springblade.iot.core.pojo.BaseDevice.getProductKey()" because "deviceInfo" is null
at org.springblade.iot.tsdb.tdengine.impl.DeviceDataServiceImpl.saveDeviceProperty(DeviceDataServiceImpl.java:31)
at org.springblade.mqtt.broker.data.function.custom.CustomHoistPostFunction.execute(CustomHoistPostFunction.java:63)
at org.springblade.mqtt.broker.data.function.custom.CustomHoistPostFunction.execute(CustomHoistPostFunction.java:27)
at org.springblade.mqtt.broker.data.listener.BladeMqttFunctionMessageListener.execDeviceFunction(BladeMqttFunctionMessageListener.java:104)
at org.springblade.mqtt.broker.data.listener.BladeMqttFunctionMessageListener.execMqttFunction(BladeMqttFunctionMessageListener.java:79)
at org.springblade.mqtt.broker.data.listener.BladeMqttFunctionMessageListener.lambda$onMessage$0(BladeMqttFunctionMessageListener.java:69)
at org.springblade.core.tenant.TenantUtil.use(TenantUtil.java:93)
at org.springblade.mqtt.broker.data.listener.BladeMqttFunctionMessageListener.onMessage(BladeMqttFunctionMessageListener.java:68)
at net.dreamlu.iot.mqtt.core.server.support.DefaultMqttServerProcessor.lambda$invokeListenerForPublish$4(DefaultMqttServerProcessor.java:503)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
产品物模型先执行一下发布操作,然后到这里用设备模拟器模拟上报,看看是否能成功:https://iot.bladex.cn/feature/device/simulator/simulator.html
如果模拟器能成功,你自己写的不行,就是你代码的问题了,需要详细列一下你怎么写的
扫一扫访问 Blade技术社区 移动端