我的Java项目中运行了一个netty服务器,正在监听请求。 Netty在将请求提供给处理程序之前将内部转换为FullHttpRequest
类型。现在在我的处理程序中,我正在尝试序列化FullHttpRequest,因为我必须将其推送到RabbtitMQ。但看起来它不是可序列化的:
due java.io.NotSerializableException: io.netty.handler.codec.http.DefaultFullHttpRequest
at org.apache.camel.impl.converter.BaseTypeConverterRegistry.createTypeConversionException(BaseTypeConverterRegistry.java:566)
at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:174)
at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:99)
... 31 more
Caused by: org.apache.commons.lang3.SerializationException: java.io.NotSerializableException: io.netty.handler.codec.http.DefaultFullHttpRequest
at org.apache.commons.lang3.SerializationUtils.serialize(SerializationUtils.java:139)
at org.apache.commons.lang3.SerializationUtils.serialize(SerializationUtils.java:161)
at com.company.myproject.util.RequestToByteArrayConverter.convertTo(RequestToByteArrayConverter.java:28)
at org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:276)
at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:165)
... 32 more
答案 0 :(得分:0)
有几种方法可以解决这个问题。
我个人采用了影子方式。