使用hessian开发WebService,轻量级,更简单、快捷

Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据------百度百科的介绍

本文介绍两个java web项目之间相互调用接口实现两个系统间数据的同步
1.首先在项目A中编写服务端接口,
  在项目中导入hessian-4.0.1.jar包
  增加一个接口,一个实现类,一个实体Bean(WSPerson)
  接口中编写一个create(WSPerson),实现类中实现这个方法,wsperson中的字段和系统中的person实体字段大部分相同
2.web.xml中的配置:
    <servlet>
        <servlet-name>system</servlet-name>
        <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
        <init-param>
            <param-name>home-class</param-name>
            <param-value>自己项目中实现类的路径</param-value>
        </init-param>
        <init-param>
            <param-name>home-api</param-name>
            <param-value>接口路径</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>system</servlet-name>
        <url-pattern>/system.xsp</url-pattern>
    </servlet-mapping>

配置完成之后,启动项目,在地址栏输入:http://localhost:8080/项目名/system.xsp,如果显示结果如下,说明配置和接口编写正确:

Hessian Requires POST

3.在接口所在包上右键,导出(Export.....),导出为JAR file,自己起个名字,system.jar
4.把system.jar包放到项目B的lib目录下,并构建路径
5.在需要同步操作的地方,编写以下代码:

    WSPerson per = new WSPerson();
    BeanUtils.copyProperties(person, per);// 把person中所有字段名称和WSPerson中相同的字段,的值复制给per
    HessianProxyFactory factory = new HessianProxyFactory();
    IOrganizeService organizeService = (IOrganizeService) factory.create(IOrganizeService.class, url);
    organizeService.createPerson(per);// 调用接口

到这一步,同步的代码已经写完了
同时启动两个项目,在项目B中尝试一下添加操作,看能不能同步到项目A的数据库中

posted @ 2013-09-16 16:17  周雷  阅读(2211)  评论(1编辑  收藏  举报
友情链接