rocketmq-4.2.0在Windows下启动broker报fastjson.JSONException错误问题解决
Windows安装好rocketmq后启动namesrv没问正则,但启动mqbroke后程序 连接不上,
后经过config目录下logback_broker.xml文件找到启动日志配置文件地址:C:\Users\lenovo\logs\rocketmqlogs
查日志发现错误内容如下:
ERROR main - load [C:\Users\Administrator\store\config\delayOffset.json] failed, and try to load backup file
com.alibaba.fastjson.JSONException: syntax error, expect {, actual EOF, pos 0
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:343) ~[fastjson-1.2.29.jar:na]
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.parseRest(JavaBeanDeserializer.java:949) ~[fastjson-1.2.29.jar:na]
at com.alibaba.fastjson.parser.deserializer.FastjsonASMDeserializer_3_DelayOffsetSerializeWrapper.deserialze(Unknown Source) ~[na:na]
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:184) ~[fastjson-1.2.29.jar:na]
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:642) ~[fastjson-1.2.29.jar:na]
at com.alibaba.fastjson.JSON.parseObject(JSON.java:350) ~[fastjson-1.2.29.jar:na]
at com.alibaba.fastjson.JSON.parseObject(JSON.java:254) ~[fastjson-1.2.29.jar:na]
at com.alibaba.fastjson.JSON.parseObject(JSON.java:467) ~[fastjson-1.2.29.jar:na]
at org.apache.rocketmq.remoting.protocol.RemotingSerializable.fromJson(RemotingSerializable.java:43) ~[rocketmq-remoting-4.2.0.jar:4.2.0]
at org.apache.rocketmq.store.schedule.ScheduleMessageService.decode(ScheduleMessageService.java:159) [rocketmq-store-4.2.0.jar:4.2.0]
at org.apache.rocketmq.common.ConfigManager.load(ConfigManager.java:38) ~[rocketmq-common-4.2.0.jar:4.2.0]
at org.apache.rocketmq.store.schedule.ScheduleMessageService.load(ScheduleMessageService.java:145) [rocketmq-store-4.2.0.jar:4.2.0]
at org.apache.rocketmq.store.DefaultMessageStore.load(DefaultMessageStore.java:176) [rocketmq-store-4.2.0.jar:4.2.0]
at org.apache.rocketmq.broker.BrokerController.initialize(BrokerController.java:223) [rocketmq-broker-4.2.0.jar:4.2.0]
at org.apache.rocketmq.broker.BrokerStartup.createBrokerController(BrokerStartup.java:210) [rocketmq-broker-4.2.0.jar:4.2.0]
at org.apache.rocketmq.broker.BrokerStartup.main(BrokerStartup.java:56) [rocketmq-broker-4.2.0.jar:4.2.0]
经发现C:\Users\[操作系统用户名]\store\config下的topics.json文件内容为空。
解决办法如下:
找到C:\Users\[操作系统用户名]\store\config下的topics.json文件,填写如下内容即可:
{
“delayLevelTable”:{}
}
对已经使用了一段时间的rocketmq其他文件会存储到响应的消息信息,单独修改某个文件可能会引起其他文件报错,
若不怕消息丢失彻底的解决办法是直接删掉C:\Users\lenovo\store下的所有文件重启后会重新生成全新的空文件。