友情提示:这篇文章要回到原始开发,要回想出很多东西,末尾介绍hessian!
一、准备
前言: 如今使用hessian没有maven jar包 所以得手动下载
官网:http://hessian.caucho.com/
二、搭建项目
- 需要搭建一个JAVA原始Web项目 保持这种层级关系(接口实现类) 创建服务端
- 配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<!--name名字 class是hession jar包的路径 报红添加依赖 要jar包路径-->
<servlet-name>hessian</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<!-- 当服务调用方请求当前这个servlet 的时候,
我让IweatherService的WearcherService实现类提供服务 -->
<init-param>
<!--home-api:键 HessianServlet初始化的参数 value就是接口-->
<param-name>home-api</param-name>
<param-value>com.czxy.hession.IWeatherService</param-value>
</init-param>
<init-param>
<!--home-class:值 value就是实现类-->
<param-name>home-class</param-name>
<param-value>com.czxy.hession.WeatherService</param-value>
</init-param>
</servlet>
<!--访问路径-->
<servlet-mapping>
<servlet-name>hessian</servlet-name>
<url-pattern>/hessian</url-pattern>
</servlet-mapping>
</web-app>
- 部署项目到Tomcat
- 访问端口测试是否发布成功
http://localhost:8089/hessian
(服务已经发布成功,但是提醒的意思是:Hessian的服务必须使用POST的请求方式)
- 客户端的开发
注意:hessian开发客户端 接口的包名接口名必须与服务端一致!
然后写个测试类
package com.czxy.hessian.test;
import com.caucho.hessian.client.HessianProxyFactory;
import com.czxy.hessian.IWeatherService;
public class InvokingHessian {
public static void main(String[] args) throws Exception, ClassNotFoundException {
// 调用HessianServer服务器端
//1 创建调用工厂
HessianProxyFactory proxy= new HessianProxyFactory();
//2 请求远程预付
IWeatherService ws = (IWeatherService)proxy.create("http://localhost:8089/hessian ");
//3像调用本地方法一样,调用远程方法
String w = ws.getName("北京");
System.out.println(w);
}
}
运行结果 然后你可以把这个客户端搭建成对外服务器
Hessian的概述
Hessian是什么
官网介绍:
The Hessian binary web service protocol makes web services usable without requiring a large framework, and without learning yet another alphabet soup of protocols. Because it is a binary protocol, it is well-suited to sending binary data without any need to extend the protocol with attachments.
Hessian是一个由Caucho Technology开发的轻量级二进制RPC协议。和其他Web服务的实现框架不同的是,Hessian是一个使用二进制格式传输的Web服务协议的框架,相对传统soap web service,更轻量,更快速。它的好处在于免除了一大堆附加的API包,例如XML的处理之类的jar包,这也就是为什么说它是一个轻量级的Web服务实现框架的原因,这个原因还在于手机上的应用程序可以通过Hessian提供的API很方便的访问Hessian的Web服务。
目前已经支持N多语言(跨语言平台的特性):
1.RMI
RMI(Remote Method Invocation,远程方法调用)是Java在JDK1.2中实现的, Java RMI 支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。(即它能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法)
【优点】:
Java RMI具有Java的"Write Once,Run Anywhere"的优点,是分布式应用系统的百分之百纯Java解决方案。用Java RMI开发的应用系统可以部署在任何支持JRE(Java Run Environment Java,运行环境)的平台上。
【缺点】:
RMI对于用非Java语言开发的应用系统的支持不足。不能与用非Java语言书写的对象进行通信。
在大力鼓吹Web Service、SOA的时代,是不是每个应用都应该选用笨拙的Web Service组件来实现,通过对比测试后,RMI是最简单的,在一些小的应用中是最合适的。
hessian和Httpclient区别
祝你幸福
送你一首歌《Your Bones》Of Monsters And Men
附图:BBC 11-12新纪录片《王朝》 豆瓣9.7