Hessian 是由 caucho 提供的一个基于 binary-RPC 实现的远程通讯 library
(原理分析相关链接http://www.cnblogs.com/happyday56/p/4268249.html)
在java中使用Hessian可以实现不同项目之间取得联系同时又相对独立,降低了程序的耦合性,方便程序员进行维护和再次开发,以下是使用Hessian的简单步骤:
1、下载相应的jar包(http://hessian.caucho.com/ 或http://download.youkuaiyun.com/detail/wodediqizhang/9543682),比如hessian-4.0.3.jar;
2、定义对外提供服务的接口:
package com.cn.a.service;
import com.cn.a.model.HelloWorld;
public interface HessianService {
public HelloWorld sayHelloWorld();
}
3、HessianService接口要使用HelloWorld对象:
package com.cn.a.model;
import java.io.Serializable;
public class HelloWorld implements Serializable{
private String name;
public HelloWorld() {
}
public HelloWorld(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
3、实现HessianService接口,实现类为HessianServiceImpl:
package com.cn.wjztr.service.impl;
import com.cn.a.model.HelloWorld;
import com.cn.a.service.HessianService;
public class HessianServiceImpl implements HessianService {
@Override
public HelloWorld sayHelloWorld() {
// TODO Auto-generated method stub
return new HelloWorld("hello,World");
}
}
4、配置web.xml,添加对HessianServlet的配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<!-- 配置 HessianServlet,Servlet的命名任意-->
<servlet-name>ServiceServlet</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<!-- 配置接口的具体实现类 ,param-name命名任意-->
<init-param>
<param-name>service-class</param-name>
<param-value>com.cn.wjztr.service.impl.HessianServiceImpl</param-value>
</init-param>
</servlet>
<!-- 映射 HessianServlet的访问URL地址-->
<servlet-mapping>
<servlet-name>ServiceServlet</servlet-name>
<url-pattern>/ServiceServlet</url-pattern>
</servlet-mapping>
</web-app>
此时,Hessian
Server的配置已经完成了,接下来将应用部署在tomcat并启动。访问链接http://127.0.0.1:8081/HessianTest/ServiceServlet,得到信息如下:
实现Hessian的client:
调用Hessian的客户端,创建HessianTestClient类,代码如下:
package com.cn.a.controller;
import java.net.MalformedURLException;
import com.caucho.hessian.client.HessianProxyFactory;
import com.cn.a.model.HelloWorld;
import com.cn.a.service.HessianService;
public class HessianTestClient {
public static void main(String[] args) {
//在服务器端的web.xml文件中配置的HessianServlet映射的访问URL地址
String url = "http://127.0.0.1:8081/HessianTest/ServiceServlet";
HessianProxyFactory factory = new HessianProxyFactory();
HessianService service = null;
try {service = (HessianService) factory.create(HessianService.class, url);}
catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();}
//创建IService接口的实例对象
HelloWorld helloWorld = service.sayHelloWorld();
//调用Hessian服务器端的ServiceImpl类中的getUser方法来获取一个User对象
System.out.println(helloWorld.getName());}}
}
}
jsp页面:
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> 运行这个类,会得到“hello,World”信息:</span>