标签:
Hessian是一个基于http协议的轻量级RMI框架,因此可以无视防火墙,并且采用自定义的二进制协议进行数据传输,相比原生RMI减少了对象的网络传输。
使用Hessian非常简单,提供远程服务不需要像RMI那样需要实现指定接口。
使用Hessian发布远程服务的步骤:
首先下载jar包,下载地址在这里
将jar包放在web项目WEB-INF/lib目录下。
接下来编写Hello接口:
public interface Hello { public String hello(String name); }
这个接口就是对外服务的方法集。
public class HelloImpl implements Hello{ public String hello(String name) { return "hello "+name; } }
这个类就是实现远程服务的具体类,可以看到和普通的java类没有任何区别。
这样服务就算写好了。
配置web.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>Hessian</display-name> <servlet> <servlet-name>hessian</servlet-name> <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class> <init-param> <param-name>service-class</param-name> <param-value>impls.HelloImpl</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>hessian</servlet-name> <url-pattern>/hessian</url-pattern> </servlet-mapping> </web-app>
启动web项目。
最后测试:
public class ClientTest { public static void main(String[] args) throws MalformedURLException { String url="http://localhost:8080/Hessian/hessian"; HessianProxyFactory factory=new HessianProxyFactory(); Hello hello=(Hello) factory.create(Hello.class,url); System.out.println(hello.hello("yukjin")); } }
hello yukjin
标签:
原文地址:http://blog.csdn.net/yukjin/article/details/44492523