问题描述
我正在尝试在 Redis pubsub OnMessage 函数中使用 RMap.get() 但它生成了 classNotFound 异常,我在同一个类的多个方法中使用了这个方法并且它在那里工作正常。 我错过了什么吗?
引起:java.io.IOException:java.lang.classNotFoundException:com.sibisoft.northstar.pms.VoiceMailExtRequestDTO 在 org.redisson.codec.SerializationCodec$1.decode(SerializationCodec.java:62) 在 org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:378) 在 org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:196) 在 org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:134) 在 org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:104) 在 io.netty.handler.codec.BytetoMessageDecoder.decodeRemovalReentryProtection(BytetoMessageDecoder.java:501) 在 io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366) 在 io.netty.handler.codec.BytetoMessageDecoder.channelRead(BytetoMessageDecoder.java:276) 在 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) 在 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) 在 io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) 在 io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) 在 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) 在 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) 在 io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) 在 io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) 在 io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714) 在 io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650) 在 io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576) 在 io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) 在 io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) 在 io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ... 2 个
private synchronized void addToRequestQueue(VoiceMailExtRequestDTO request){
voiceMailRequestsList = voiceMailRequests.get(0,reqeustThread.siteId);
}
调用 onMessage():
@Override
public void onMessage(CharSequence channel,String object) {
vmRequests.get(0,reqeustThread.siteId)
}
public V get(int tenantId,Object key) throws RedisException {
if (rMap && isRedisConfigured) {
try{
redisMap = getRMap(tenantId);
return redisMap.get(key);
}catch(RedisException e){
logger.error("redisson client exception: "+ e.getMessage());
e.printstacktrace();
}
return null;
} else if (!isMultitenancyConfigured) {
return super.get(key);
} else {
return localmap.get(new Integer(tenantId),key);
}
}
private RMap<K,V> getRMap(int tenantId) {
if (localCache) {
return client.getLocalCachedMap(mapName + tenantId,defaults());
} else {
return client.getMap(mapName + tenantId);
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)