`
m635674608
  • 浏览: 5003080 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

dubbo 接口 序列化问题

 
阅读更多
java.lang.ClassNotFoundException: com.tude.goods.po.TudeGoods
hset>>>>>>>>>>>>>calss=====class java.util.HashMap


dubbo 接口 

public <T> T hget(String key, String field, Class<T> t) throws Exception {
		// TODO Auto-generated method stub
		return redisService.hget(key, field, t);
	}
	
	@Override
	public Long hset(String key, String field, Object value) throws Exception {
		// TODO Auto-generated method stub
	    //System.out.println("hset>>>>>>>>>>>>>calss====="+value.getClass());
		return redisService.hset(key, field, value);
	}

hset 参数	
场景1:
Object 传过来的是java对象,但是dubbo服务端没有该java对象,value.getClass()类型就是hashMap,这是hessian把对象转行成了map。日志报出来
java.lang.ClassNotFoundException: com.tude.goods.po.TudeGoods
hset>>>>>>>>>>>>>calss=====class java.util.HashMap

存入到redis中,反序列化出来的也是一个hashMap

当hget 返回的时候,返回的也是一个hashMap,强制转杭成java对象报错。


场景2:
Object 传过来的是List<java对象>,但是dubbo服务端没有该java对象,value.getClass()类型就是List

存入到redis中,是list<hashMap>



当hget 返回的时候,返回的也是一个list<hashMap>,强制转杭成list<java对象>又没报错





 

分享到:
评论

相关推荐

    dubbo注意的问题,注入问题,接口中的bo应该实现序列化,否则服务注册失败

    当服务接口中的BO(Business Object,业务对象)未实现序列化时,服务注册时可能会遇到问题,因为Dubbo在传输过程中通常需要将对象转换为字节流,这就涉及到了对象的序列化。 对象序列化是Java中一个重要的概念,它...

    dubbo 对外提供和使用接口方法

    - **特点**:二进制序列化,适用于网络传输效率较高的场景。 - **配置示例**: ```xml &lt;dubbo:protocol name="hessian" port="20881"/&gt; ``` **4. http协议** - **特点**:基于HTTP协议,易于集成和调试。 - ...

    python 如何调用 dubbo 接口

    Dubbo是由阿里巴巴开源的高性能RPC框架,它支持多种序列化协议,并且可以提供服务注册与发现机制,从而实现服务的高可用和负载均衡。 接下来,我们将使用Python的Telnetlib模块来建立与Dubbo接口的连接。Telnetlib...

    Dubbo序列化协议5连问,你接得住不?.docx

    在Dubbo中,序列化协议是实现RPC通信的关键部分,因为它涉及到数据的转换和网络传输。 1. **Dubbo支持的通信协议**: - **Dubbo协议**:默认协议,采用单个长连接和NIO异步通信,基于Hessian进行序列化。适用于大...

    34_dubbo都支持哪些通信协议以及序列化协议?.zip

    1. **Java Serialization**:Java平台默认的序列化方式,简单易用,但性能较差,且序列化的对象必须实现Serializable接口。 2. **Hessian2**:一种快速的二进制序列化协议,它将Java对象转换为高效的字节流,适合于...

    nodejs使用原生的dubbo协议打通了dubbo的rpc方法调用.

    描述进一步提到,“nodejs 使用原生的 dubbo (dubbo head hessian body) 协议”,这表明在Node.js中,开发者不仅实现了Dubbo的协议头(head),还处理了Hessian二进制序列化协议作为消息体(body)。Hessian是一种...

    dubbo捕获自定义异常_dubbo异常捕获_dubbo异常_自定义异常_捕捉异常_

    Dubbo 默认支持 Java 的序列化,但为了性能和安全性,可以考虑使用更轻量级的序列化库,如 Protobuf 或 JSON。 7. **错误码和异常信息** 在自定义异常类中定义错误码和错误信息,可以提供更清晰的错误上下文。这有...

    dubbo官方文档及demo

    1. **Protocol**:定义服务接口,包括协议、序列化方式等。 2. **Registry**:处理服务的注册与发现,通常基于Zookeeper或Eureka等。 3. **Proxy**:生成服务的代理对象,提供客户端调用的接口。 4. **Filter**:...

    dubbo入门学习框架源码

    2. 服务消费者(Consumer):调用服务的实体,通过Dubbo接口消费服务。 3. 注册中心(Registry):存储服务提供者和服务消费者的元数据,实现服务的注册和发现。 4. 运行时监控(Monitor):收集服务的运行数据,...

    dubbo的简单实现

    4. **序列化问题**:由于Dubbo采用二进制方式进行数据传输,因此涉及到对象序列化的问题。当对象没有实现序列化接口时,可能会导致序列化失败。需要确保所有传输的对象都实现了序列化接口。 #### 总结 Dubbo作为一...

    dubbo介绍和使用

    1. **序列化**:Dubbo 默认使用 Hessian 2 序列化库,同时支持 Java 的 Serializable 机制,并提供了更高效的序列化实现。 - **Hessian 2**:一种高效的二进制格式,适合网络传输。 - **Java Serializable**:Java...

    dubbo2.5.7 源码包

    接口定义了数据的序列化与反序列化,Dubbo内置了多种序列化方式,如Java、FastJson、Hessian等。选择合适的序列化方式对性能有显著影响。 五、服务治理 5.1 监控中心(Monitor) Dubbo提供了监控中心,可以收集...

    dubbo最新全面深度解读

    序列化是远程调用中必不可少的一环,Dubbo支持多种序列化方式,如Java自带的序列化、Hessian2、FastJson等。选择合适的序列化方式可以影响到系统的性能和兼容性。 8. **容错机制** Dubbo提供了多种容错策略,如...

    dubbo源码分析系列

    - RPC(Remote Procedure Call)原理:深入解析Dubbo的RPC过程,包括请求构建、序列化、网络传输和反序列化响应等步骤。 - Netty通信框架:Dubbo如何利用Netty实现高效的网络通信,包括NIO模型、线程模型和缓冲区...

    dubbo手册中文版

    Dubbo的RPC框架设计了高效的序列化和反序列化机制,确保了跨进程通信的高效性。 3. **负载均衡**: 在消费者调用多个服务提供者时,Dubbo提供了多种负载均衡策略,如轮询、随机、最少活跃调用数等,以优化服务请求...

    dubbo 简单测试DEMO

    同时,Dubbo提供了多种序列化方式,如Java自带的序列化、FastJson、Hessian等,用于将对象转换为字节流在网络上传输。在DEMO中,我们通常使用默认的Dubbo协议和Hessian序列化。 5. **配置中心(Config Center)** ...

    DUBBO 中文帮助文档

    Dubbo 基于 Java SPI(Service Provider Interface)提供了一套扩展机制,允许开发者自定义实现 Dubbo 的各个组件,如协议、序列化、注册中心等。 综上,Dubbo 中文 API 提供了丰富的配置选项,使得开发者能够灵活...

    dubbo-dubbo-2.7.2源码

    Dubbo协议是默认的高性能二进制协议,它实现了高效的序列化和反序列化,降低了网络传输开销。 五、服务接口与实现 服务接口定义了服务的契约,通常是一个Java接口,服务提供者实现这个接口并暴露服务,服务消费者...

    dubbo的技术文档

    - **序列化(Serialization)**:数据在网络中传输前需要进行序列化,Dubbo支持多种序列化方式,如Hessian2、FastJson、Kryo等,选择合适的序列化方式可以提高通信效率。 5. **服务治理**: - **负载均衡(Load ...

Global site tag (gtag.js) - Google Analytics