友情提示:这篇文章要回到原始开发,要回想出很多东西,末尾介绍hessian!

一、准备

前言: 如今使用hessian没有maven jar包 所以得手动下载
官网:http://hessian.caucho.com/
hessian使用_Hessian使用

二、搭建项目

  1. 需要搭建一个JAVA原始Web项目 保持这种层级关系(接口实现类) 创建服务端
    hessian使用_hessian与httpclient区别_02
  2. 配置web.xml
    hessian使用_Java_03
<?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>
  1. 部署项目到Tomcat
    hessian使用_RPC_04

hessian使用_hessian_05

  1. 访问端口测试是否发布成功
http://localhost:8089/hessian 

hessian使用_hessian与httpclient区别_06
(服务已经发布成功,但是提醒的意思是:Hessian的服务必须使用POST的请求方式)

  1. 客户端的开发
    hessian使用_RPC_07

注意: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使用_Java_08

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区别

hessian使用_hessian与httpclient区别_09

祝你幸福
送你一首歌《Your Bones》Of Monsters And Men
附图:BBC 11-12新纪录片《王朝》 豆瓣9.7

hessian使用_RPC_10