Skip to content
This repository has been archived by the owner on Oct 23, 2023. It is now read-only.

hession反序列化错误 #14

Open
zhaiyuyong opened this issue Mar 3, 2016 · 7 comments
Open

hession反序列化错误 #14

zhaiyuyong opened this issue Mar 3, 2016 · 7 comments

Comments

@zhaiyuyong
Copy link

[03/03/16 05:19:16:016 CST] New I/O worker #4 WARN dubbo.DecodeableRpcInvocation: [DUBBO] Decode rpc invocation failed: expected map/object at java.lang.String (Lcom/alibaba/dubbo
/common/URL;), dubbo version: 2.8.4, current host: 192.168.1.100
com.alibaba.com.caucho.hessian.io.HessianProtocolException: expected map/object at java.lang.String (Lcom/alibaba/dubbo/common/URL;)
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.error(AbstractDeserializer.java:108)
at com.alibaba.com.caucho.hessian.io.AbstractMapDeserializer.readObject(AbstractMapDeserializer.java:70)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1696)
at com.alibaba.dubbo.common.serialize.support.hessian.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:94)
at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:150)
at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:74)
at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:138)
at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:134)
at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:95)
at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.decode(DubboCountCodec.java:46)
at com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalDecoder.messageReceived(NettyCodecAdapter.java:134)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:109)
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:90)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[03/03/16 05:19:16:016 CST] New I/O worker #4 WARN codec.ExchangeCodec: [DUBBO] Skip input stream 465, dubbo version: 2.8.4, current host: 192.168.1.100
[03/03/16 05:19:16:016 CST] New I/O worker #4 WARN dubbo.DecodeableRpcInvocation: [DUBBO] Decode rpc invocation failed: expected map/object at java.lang.String (Lcom/alibaba/dubbo/common/URL;), dubbo version: 2.8.4, current host: 192.168.1.100
com.alibaba.com.caucho.hessian.io.HessianProtocolException: expected map/object at java.lang.String (Lcom/alibaba/dubbo/common/URL;)
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.error(AbstractDeserializer.java:108)
at com.alibaba.com.caucho.hessian.io.AbstractMapDeserializer.readObject(AbstractMapDeserializer.java:70)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1696)
at com.alibaba.dubbo.common.serialize.support.hessian.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:94)

@walterlife
Copy link

您好,这个问题现在有解决了吗?我也遇到同样的问题了。

@walterlife
Copy link

我已经解决了,将dubbo换成2.5.4就可以了

@chenzhiguo
Copy link
Member

感谢@walterlife的贡献,该项目是在基于2.8.4的版本上开发的,如果出现其他版本的兼容问题~希望大家共同努力,提出来,解决掉!

@Justin-yyx
Copy link

我这边是在2.8.4的dubbox上遇到的,最后发现是本地打包了dubbo2.5.3和dubbox2.8.4,然后他们可能有一些包紊乱吧,导致jar包依赖问题。把本地maven仓库的dubbo相关全部清空以后,从新打2.8.4的包,就一切正常了!

@huifrank
Copy link

huifrank commented Feb 4, 2017

多谢,我也在2.8.4的dubbox上遇到了同样的问题。把dubbox重新编译,install后解决了

@liqian008
Copy link

liqian008 commented Apr 19, 2017

遇到了同样的问题,说说我的环境。

1、service是基于原版dubbo构建并运行的,V2.5.3,JDK1.6。

2、但原版的monitor-sample始终无法启动,因此clone了本库及dubbox(v2.8.4)仓库的代码,构建完成后部署成功(1、修改mysql、zk连接地址;2、部署期间有遇到classNotFound的问题,修改pom后解决)

3、monitor服务启动后,也在原dubbo server的xml配置中增加了dubbo:monitor="registry"。

但就遇到了楼主提到的异常,怀疑是不是原dubbo服务与dubbox-monitor服务间协议的问题? (可dubbox中提到, dubbox和dubbo 2.x是兼容的,没有改变dubbo的任何已有的功能和配置方式(除了升级了spring之类的版本)),很是费解,在此求助

WARN codec.ExchangeCodec: [DUBBO] Skip input stream 465, dubbo version: 2.8.4, current host: 10.30.215.208
[19/04/17 08:10:43:043 CST] New I/O worker #1 WARN dubbo.DecodeableRpcInvocation: [DUBBO] Decode rpc invocation failed: expected integer at 0x1e java.lang.String (Lcom/alibaba/dubbo/common/URL;), dubbo version: 2.8.4, current host: xxx.xxx.xxx.xxx
com.alibaba.com.caucho.hessian.io.HessianProtocolException: expected integer at 0x1e java.lang.String (Lcom/alibaba/dubbo/common/URL;)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.error(Hessian2Input.java:2720)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.expect(Hessian2Input.java:2691)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readInt(Hessian2Input.java:773)
at com.alibaba.dubbo.common.serialize.support.hessian.Hessian2ObjectInput.readInt(Hessian2ObjectInput.java:58)
at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:106)
at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation.decode(DecodeableRpcInvocation.java:74)
at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:138)
at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:134)
at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:95)
at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.decode(DubboCountCodec.java:46)
at com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalDecoder.messageReceived(NettyCodecAdapter.java:134)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:109)
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:90)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)

后续,使用V2.5.4版本dubbo发布服务,问题依然存在。

@liqian008
Copy link

liqian008 commented Apr 19, 2017

弃用dubbo-monitor,改用DubboKeeper后,一切正常。

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants