Hessian是基于HTTP的轻量级远程服务解决方案,Hessian向RMI一样,使用二进制进行客户端和服务端的交互。但是与其它二进制远程调用技术(例如RMI)不同的是,它的二进制消息可以移植到其它非Java语言中。

一、创建Hessian程序的4个步骤

1、定义一个远程调用接口

2、实现远程调用接口

3、在web.xml 中定义导出hessian服务需要的信息。

4、客户端调用

二、具体实现

1、定义一个远程调用接口

public interface IStudent {

	void sayHey(String name);
}

  

2、实现远程调用接口

public class StudentImpl implements IStudent{

	public void sayHey(String name) {
System.out.println("Hello," + name);
} }

  

3、在web.xml 中定义导出hessian服务需要的信息。

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app>
<display-name>Archetype Created Web Application</display-name> <servlet>
<servlet-name>HessianServlet</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<init-param>
<param-name>service-class</param-name>
<param-value>com.demo.hessian.service.StudentImpl</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>HessianServlet</servlet-name>
<url-pattern>/hessian</url-pattern>
</servlet-mapping>
</web-app>

  pom.xml中引入Hessian

	<dependency>
<groupId>com.caucho</groupId>
<artifactId>hessian</artifactId>
<version>4.0.38</version>
</dependency>

  

4、客户端调用

public class HessianClient {

	public static void main(String[] args) {
try {
String url = "http://localhost:8080/shengsiyuan/hessian";
HessianProxyFactory factory = new HessianProxyFactory();
factory.setOverloadEnabled(true);
IStudent student = (IStudent)factory.create(IStudent.class, url);
student.sayHey("Nick");
} catch (Exception e) {
e.printStackTrace();
} } }  

显示结果

Hello,Nick

  

Java Hessian实践的更多相关文章

  1. 大型网站系统与Java中间件实践

    大型网站系统与Java中间件实践(贯通分布式高并发高数据高访问量网站架构与实现之权威著作,九大一线互联网公司CTO联合推荐) 曾宪杰 著   ISBN 978-7-121-22761-5 2014年4 ...

  2. Java注解实践

    Java注解实践 标签 : Java基础 注解对代码的语意没有直接影响, 他们只负责提供信息给相关的程序使用. 注解永远不会改变被注解代码的含义, 但可以通过工具对被注解的代码进行特殊处理. JDK ...

  3. 《大型网站系统与JAVA中间件实践》【PDF】下载

    <大型网站系统与JAVA中间件实践>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230062557 内容简介 到底是本什么书,拥有这样 ...

  4. Atitit.异常的设计原理与 策略处理 java 最佳实践 p93

    Atitit.异常的设计原理与 策略处理 java 最佳实践 p93 1 异常方面的使用准则,答案是:: 2 1.1 普通项目优先使用异常取代返回值,如果开发类库方面的项目,最好异常机制与返回值都提供 ...

  5. java 分布式实践

    java 分布式实践 spring boot cloud实践 开源的全链路跟踪很多,比如 Spring Cloud Sleuth + Zipkin,国内有美团的 CAT 等等. 其目的就是当一个请求经 ...

  6. [Java]Hessian客户端和服务端代码例子

    简要说明:这是一个比较简单的hessian客户端和服务端,主要实现从客户端发送指定的数据量到服务端,然后服务端在将接收到的数据原封不动返回到客户端.设计该hessian客户端和服务端的初衷是为了做一个 ...

  7. 一次从0到1的java项目实践清单

    虽说工作就是简单的事情重复做,但不是所有简单的事你都能有机会做的. 我们平日工作里,大部分时候都是在做修修补补的工作,而这也是非常重要的.做好修补工作,做好优化工作,足够让你升职加薪! 但是如果有机会 ...

  8. JAVA爬虫实践(实践一:知乎)

    爬虫顺序 1.分析网站网络请求 通过浏览器F12开发者工具查看网站的内容获取方式. 2.模拟HTTP请求,获取网页内容. 可以采用HttpClient,利用JAVA HttpClient工具可以模拟H ...

  9. 一份从0到1的java项目实践清单

    虽说工作就是简单的事情重复做,但不是所有简单的事你都能有机会做的. 我们平日工作里,大部分时候都是在做修修补补的工作,而这也是非常重要的.做好修补工作,做好优化工作,足够让你升职加薪! 但是如果有机会 ...

随机推荐

  1. MYSQL 存储引擎概述

    一.存储引擎 Mysql中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中每一种技术都使用了不同的存储机制,索引技巧.锁定水平并且最终提供广泛的不同功能和能力.通过选择不同的技术,你能够获得 ...

  2. Jenkins 插件:Job Configuration History(记录job的历史更新记录)

    1. 添加插件   添加完成后,Jenkins,左下,多一个菜单栏 .可以查看,job的更新记录,见下图 .   如上,End再也不用担心,有同学乱改Job ,却不知道哪里被改的情况了. 注:1)这个 ...

  3. C++(四十三) — 函数模板机制

     1.普通函数与模板函数调用原则 函数模板可以像普通函数一样被重载: 当函数模板和普通函数都符合条件时,编译器优先考虑普通函数: 但如果函数模板产生一个更好的匹配,则选择函数模板: 可以通过空模板实参 ...

  4. 【转】java.io.Closeable接口

    说到java.io.Closeable接口就避不开java.lang.AutoCloseable接口,因为在java版本7.0时引入了java.lang.AutoCloseable接口,同时java. ...

  5. python3 操作 hive 安装依赖包整理

    安装依赖pip install saslpip install thriftpip install thrift-saslpip install PyHive windows安装sasl报错,解决方案 ...

  6. npm start a http server( 在windows的任意目录上开启一个http server 用来测试html 页面和js代码,不用放到nginx的webroot目录下!!)

    原文:https://stackabuse.com/how-to-start-a-node-server-examples-with-the-most-popular-frameworks/#:~:t ...

  7. flask 关于get、post的写法

    一. get 方法获取入参方法  request.args.get 地址: 127.0.0.1:5000/test?arg1=1&arg2=2 如图: 二. pots方法获取入参方法类型比较多 ...

  8. SHOI2008 cactus仙人掌图 和 UOJ87 mx的仙人掌

    cactus仙人掌图 题目描述 如果某个无向连通图的任意一条边至多只出现在一条简单回路(simple cycle)里,我们就称这张图为仙人掌图(cactus).所谓简单回路就是指在图上不重复经过任何一 ...

  9. 浏览器兼容问题--get/post

    问题描述: 人员通过发送位置在百度地图上显示出来.删除人员后,chrome地图上该人员也随即消失,但IE浏览器上仍旧存在.清除缓存后,才消失. 原因: IE下面同一个地址,不会多次去请求的.只有加一个 ...

  10. 大小端示例-arm c51

    大小端系列文章https://blog.csdn.net/liming0931/article/details/100016425 MDK(Keil5,STM32F407)C语言: #include  ...