尝试用redisson配置我的javaee web项目。
在Docker容器中设置Redis,运行良好。
经历了 https://github.com/redisson/redisson/tree/master/redisson-tomcat 配置我的tomcat。
当我试图运行项目时,它会抛出以下错误:
java.lang.IllegalArgumentException:com.fasterxml.jackson.databind.JsonMappingException:无限递归(StackOverflowError)(通过引用链:java.util.LoaderReference[“cacheKey”]->java.util.cacheKey[“loaderRef”]
我通过阅读这里和那里发现,这与使用jackson序列化具有双向关系的Java对象有关但是这个项目太庞大了,而且有太多的对象被序列化,所以很难确定问题的来源。
我对ReDISN比较新,不知道在我现有的JavaEE项目中使用什么作为会话管理器需要做什么。我们正试图从传统的tomcat会话管理器转向基于redisson的tomcat会话管理器。任何帮助都将不胜感激。
我开始使用@jsonignore删除双向关系,但是有太多的双向关系,我觉得使用jackson进行序列化是在浪费时间。 因此,我将编解码器从jackson改为jdk序列化编解码器,在几个问题之后,项目运行良好。
在redisson.yml文件中,添加/更改以下行:
codec: !<org.redisson.codec.SerializationCodec> {}