1、 在Hessian官网上下载Hessian的jar包,我下载了for java的;(如hessian-4.0.3.jar,hessian-4.0.3-src.jar);
2、 把Hessian协议导入到Eclipse工程中,(例如工程Test);
目录结构:
把下载的Hessian的jar包放在WEB-INF/lib文件夹下,选中Test工程,右键单击,选Refresh(or直接F5刷新)后,在project|propertise|Java Build Path|Librarise,单击ADD Jar添加jar包;
3、纯Java环境下例子:
(1) 客户端接口
//客户端接口
package dhdemo;
public interface myHello {
String sayHello();//远程调用接口
}
(2)
客户端接口实现类
//服务器端接口实现类IMyHello
package dhdemo;
import dhdemo.myHello;
import com.caucho.hessian.server.HessianServlet;
public class IMyHello extends HessianServlet implements myHello {
public String sayHello()
{
return "============Hello world!==========";
}
}
(3)配置tomcat下的root/web-inf下的web.xml
<!-- hessian协议的servlet配置 -->
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<init-param>
<param-name>home-class</param-name>
<param-value>dhdemo.IMyHello</param-value>
</init-param>
<init-param>
<param-name>home-api</param-name>
<param-value>dhdemo.myHello</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/Hello</url-pattern>
</servlet-mapping>
(4)利用HessianProxyFactory从客户端输出向服务器端的请求
package dhdemo;
import com.caucho.hessian.client.HessianProxyFactory;
public class OutputHello
{
public static void main (String[] args) {
String url="http://localhost:8080/Hello";
HessianProxyFactory factory=new HessianProxyFactory();
try{
myHello hello=(myHello)factory.create(myHello.class,url);
System.out.println(hello.sayHello());
}catch(Exception e)
{System.out.print("无法访问远程服务"+e);}
}
}
///
Jsp技术下实现浏览器输出
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<%@ page import="com.caucho.hessian.client.HessianProxyFactory"%>
<%@ page import="dhdemo.myHello"%>
<%
String url="http://localhost:8080/Hello";
HessianProxyFactory factory=new HessianProxyFactory();
try{
myHello hello=(myHello)factory.create(myHello.class,url);
out.println(hello.sayHello());
}catch(Exception e)
{out.print("无法访问远程服务"+e);}
%>
<body>
</body>
</html>
注:有时在“public class IMyHello extends HessianServlet implements myHello”这里会遇到错误,错误提示“the type javax servlet GeneralServlet not resolved,it indirect……”,这是因为没有把javax.servlet.jar包放在Test工程的WEB-INF/lib下,在MyEclipse/eclipse/plugins下找到javax.servlet.jar文件,放在lib文件夹下,按照导入Hessian的jar包一样的方法,导入到Test工程中就可以了。