3
回答
使用FST时出现了异常
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   
Caused by: java.lang.NullPointerException: Class is null
at de.ruedigermoeller.serialization.FSTClazzInfoRegistry.getCLInfo(FSTClazzInfoRegistry.java:128) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.getClazzInfo(FSTObjectInput.java:300) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.readObjectWithHeader(FSTObjectInput.java:250) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.readObjectInternal(FSTObjectInput.java:230) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.serializers.FSTMapSerializer.instantiate(FSTMapSerializer.java:86) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.instantiateAndReadWithSer(FSTObjectInput.java:361) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.readObjectWithHeader(FSTObjectInput.java:260) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.readObjectFields(FSTObjectInput.java:537) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.instantiateAndReadNoSer(FSTObjectInput.java:403) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.readObjectWithHeader(FSTObjectInput.java:262) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.readArray(FSTObjectInput.java:831) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.instantiateArray(FSTObjectInput.java:326) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.instantiateSpecialTag(FSTObjectInput.java:288) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.readObjectWithHeader(FSTObjectInput.java:255) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.readArray(FSTObjectInput.java:831) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.instantiateArray(FSTObjectInput.java:326) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.instantiateSpecialTag(FSTObjectInput.java:288) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.readObjectWithHeader(FSTObjectInput.java:255) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.readArray(FSTObjectInput.java:831) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.instantiateArray(FSTObjectInput.java:326) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.instantiateSpecialTag(FSTObjectInput.java:288) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.readObjectWithHeader(FSTObjectInput.java:255) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.readObjectInternal(FSTObjectInput.java:230) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.readObject(FSTObjectInput.java:210) ~[fst-1.58-onejar.jar:?]
at de.ruedigermoeller.serialization.FSTObjectInput.readObject(FSTObjectInput.java:165) ~[fst-1.58-onejar.jar:?]

... 19 more


这是什么原因呢?

FST
举报
JackChu
发帖于3年前 3回/1K+阅
共有3个答案 最后回答: 3年前
嗯 是和你使用这个类 FSTConfiguration  有关,看上去好像是某个class没有注册,具体注册方式FSTConfiguration有注册接口,同时这个类应该作为一个单例来使用,api有这样的描述:Holds a serialization configuration. Reuse this class !!! construction is very expensive. (just keep a static instances around),官方推荐使用这个类 主要是对对象的重用和线程安全,提供对应的输入输出对象,但单纯的序列化   目前我没有配置这个类,没有出现什么问题。因为这里我没有考虑其他太多的因素,只把握好FSTObjectOutput/FSTObjectInput就完事。

@红薯  @石头哥哥

看到你们也在使用fst,但看了你们项目的源码,你们没有使用FSTConfiguration 这个类

这个异常难道是我使用这个类的原因吗?

在官方文档里面,是推荐使用这个类的

In order to optimize object reuse and thread safety, FSTConfiguration provides 2 simple factory methods to obtain input/outputstream instances:
难道是因为我的项目是jdk6的原因吗?

望解答,谢谢

顶部