`
lobin
  • 浏览: 417887 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

基于hessian协议进行rpc调用(http方式)

 
阅读更多

一个最简单的例子

基于hessian进行rpc调用(http方式)

 

先定义一个接口:

public interface TestService {

    public void test(String name);

}

 

实现这个接口:

public class TestServiceImpl implements TestService {

    @Override

    public void test(String name) {

        System.out.println("test:" + name);

    }

}

 

基于hessian进行rpc调用(http方式)

 

 

c 0x01 0x00

m 0x00 0x04 test

S 0x00 0x0A helloworld

z

 

 

@Test

public void invoke() throws IOException {

String url = "http://localhost:8080/springhessiantest/service/TestService";

URL u = new URL(url);

URLConnection connection = u.openConnection();

connection.setDoOutput(true);

connection.setDoInput(true);

OutputStream os = connection.getOutputStream();

 

ByteArrayOutputStream bos = new ByteArrayOutputStream();

 

bos.write('c');

bos.write(0x01);

bos.write(0x00);

 

 

// m 0x00 0x04 test

bos.write('m');

bos.write(0x00);

bos.write(0x04);

bos.write("test".getBytes());

 

// S 0x00 0x0A helloworld

bos.write('S');

String s = "helloworld";

int length = 10;

length = (length << 16) >>> 16;

bos.write(length >>> 8);

bos.write((length << 8) >>> 8);

bos.write(s.getBytes());

 

// z

bos.write('z');

 

os.write(bos.toByteArray());

 

InputStream is = connection.getInputStream();

 

StringBuilder sb = new StringBuilder();

byte[] buf = new byte[128];

int i = -1;

while ((i = is.read(buf)) != -1) {

sb.append(new String(buf, 0, i));

}

System.out.println(sb.toString());

}

 

 

运行输出:

test:helloworld

 

1、Hessian (RPC)序列化:对象(Java):https://lobin.iteye.com/blog/2368199

0
1
分享到:
评论

相关推荐

    dubbo-hessian协议http请求demo(java)

    Hessian是Apache的一个子项目,它是一种二进制的Remoting协议,常用于Java和.NET之间进行远程方法调用(RPC)。本示例将介绍如何在Java中利用Dubbo的Hessian协议进行HTTP请求的实现。 首先,我们需要理解Hessian...

    Hessian远程调用RPC最简单demo

    Hessian是Apache软件基金会的Caucho项目开发的一个开源RPC框架,它支持二进制协议,能够高效地进行远程方法调用。本教程将详细介绍"Hessian远程调用RPC最简单demo",包括服务器端服务发布和客户端服务调用的实现,...

    Java RPC调用示例

    3. **网络通信**:在Java中,我们可以使用Socket编程或者HTTP协议来实现网络通信。Socket提供了低级别的网络通信接口,而HTTP更易于理解和使用,且支持更多功能,如错误处理和身份验证。 4. **服务注册与发现**:...

    hessian轻量级 rpc实现

    Hessian,由Caucho Technology开发,是一款轻量级、高效的RPC框架,它基于HTTP协议,以二进制格式传输数据,从而降低了网络通信的开销。本文将深入探讨Hessian在RPC实现中的原理、特点以及如何在实际项目中应用。 ...

    Hessian协议格式

    采用的是二进制 RPC 协议,所以它很适合于发送二进制数据。Hessian 主要用作面向对象的消息通信。 Hessian 协议报文格式可以分为两部分:请求报文和应答报文。下面将详细介绍 Hessian 请求报文和应答报文的结构和...

    Hessian RPC-RMI技术 整合Structs Spring Hibernate Ibatis

    Hessian是一种轻量级的RPC协议,它基于HTTP协议,以二进制格式传输数据,提高了通信效率。RMI(Remote Method Invocation)是Java平台上的另一种RPC实现,主要用于Java应用之间的通信。 本文主要讨论的是如何将...

    java+hessian 远程调用

    Java Hessian远程调用是一种高效的、轻量级的RPC(Remote Procedure Call)解决方案,它允许Java应用程序通过网络进行跨语言的通信。Hessian是BEA Systems开发的一种二进制Web服务协议,它提供了序列化和远程方法...

    rpc远程调用使用说明&源码

    1. **客户端(Client)**:发起RPC调用的程序,它封装了远程方法的参数,并生成请求消息。 2. **服务端(Server)**:接收并处理客户端的请求,执行相应的远程方法,并将结果返回。 3. **序列化/反序列化模块**:...

    hessian案例,hessian案例

    6. **HTTP协议的RPC**:"几种基于HTTP协议的RPC性能比较.txt"文件可能分析了在HTTP上运行的RPC框架,包括使用Hessian的情况。Hessian是构建在HTTP基础之上,但通过二进制编码优化了传输效率,因此在某些场景下可能...

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

    标题中的“nodejs使用原生的dubbo协议打通了dubbo的rpc方法调用”意味着在Node.js环境中,开发者成功地实现了对Dubbo服务的RPC(远程过程调用)访问,利用了Dubbo协议的特性。Dubbo是阿里巴巴开源的一个高性能、轻量...

    hessian实现远程调用

    首先,Hessian基于HTTP协议,使用二进制序列化来减少数据传输量,从而提高通信效率。它支持Java、C++等多种语言,使得跨语言的远程调用成为可能。Hessian的核心思想是将Java对象转换成二进制流,通过网络发送,然后...

    hessian php与java通讯demo源码

    Hessian是一种二进制协议,它允许在不同的编程语言之间进行高效的远程方法调用(RPC)。这个"PHP与Java通信Demo源码"是基于Hessian协议实现的一个示例,展示了如何在PHP和Java之间建立通信。现在,我们将深入探讨...

    Hessian(binary-RPC)相关Jar包资源.zip

    Hessian协议基于HTTP协议,但与普通的HTTP通信不同,它采用了二进制编码,因此在数据传输效率上优于传统的基于文本的XML或JSON格式。这种二进制编码使得Hessian能够更高效地处理Java对象,减少了网络传输的数据量,...

    rpc 远程调用

    6. **容错与重试**:RPC调用过程中可能会遇到网络问题或服务异常,因此需要设计相应的容错策略,比如失败重试、超时重试、FALLBACK降级策略等。 7. **安全机制**:RPC调用可能涉及到敏感数据和业务逻辑,因此需要...

    hessian-4.0.33.jar

    Hessian协议基于HTTP协议,但其数据传输采用二进制格式,这使得它在数据传输效率上远超基于文本的XML或JSON协议。Hessian支持多种类型的数据序列化,包括基本类型、对象、数组、日期等,并且能够自动处理Java和.NET...

    用hessian c#桌面程序调用J2EE后台服务

    Hessian是一种二进制的远程过程调用(RPC)协议,由BEA Systems(现为Oracle的一部分)开发,它允许不同语言之间进行高效、简洁的数据交换。 1. **Hessian协议**:Hessian是一种轻量级的序列化和RPC协议,它的主要...

    基于spring+hessian框架的webservice实例

    本实例重点探讨的是基于Spring框架和Hessian协议的Web Service实现,这是一种轻量级、高效的远程调用解决方案。 首先,我们要理解Spring框架。Spring是Java领域的一个核心框架,它提供了全面的编程和配置模型,用于...

    Android-对OkHttp3请求库简单封装适配Json-Rpc调用协议

    json-rpc是基于json的跨语言远程调用协议,比xml-rpc、webservice等基于文本的协议传输数据格小;相对hessian、java-rpc等二进制协议便于调试、实现、扩展,是非常优秀的一种远程调用协议。

    Hessian Binary Web Service Protocol远程接口调用入门Demo

    Hessian二进制Web服务协议(Hessian Binary Web Service Protocol)是一种高效的、轻量级的远程过程调用(RPC)协议,它主要用于提高Web服务之间的通信效率。Hessian由Caucho Technology公司开发,旨在解决XML-RPC在...

Global site tag (gtag.js) - Google Analytics