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的数据库中

使用hessian开发WebService,轻量级,更简单、快捷的更多相关文章

  1. spring 第一篇(1-1):让java开发变得更简单(下)

    切面(aspects)应用 DI能够让你的软件组件间保持松耦合,而面向切面编程(AOP)能够让你捕获到在整个应用中可重用的组件功能.在软件系统中,AOP通常被定义为提升关注点分离的一个技术.系统由很多 ...

  2. spring 第一篇(1-1):让java开发变得更简单(下)转

    spring 第一篇(1-1):让java开发变得更简单(下) 这个波主虽然只发了几篇,但是写的很好 上面一篇文章写的很好,其中提及到了Spring的jdbcTemplate,templet方式我之前 ...

  3. 【Eclipse】eclipse设置,为了更简单快捷的开发

    保存时自动导包 Windows->Perferences->Java->Editor->Save Actions

  4. [转] WebService开发笔记 1 -- 利用cxf开发WebService竟然如此简单

    以下文章来自   http://www.blogjava.net/jacally/articles/186655.html 现在的项目中需要用到SOA概念的地方越来越多,最近我接手的一个项目中就提出了 ...

  5. spring 第一篇(1-1):让java开发变得更简单(上)

    1.释放POJOS能量 传统开发中是如何束缚POJOS呢,如果你开发过java很长时间,那你一定有接触过EJB的开发.那时候开发一个小小的功能都要扩展框架的类或者实现其接口.所以你很容易在早期的Str ...

  6. GVIM与模板——让FPGA开发变得更简单

    还在使用FPGA开发环境自带的代码编辑器?还在逐个字母敲击冗长重复的代码?明德扬至简设计法让你快速提高代码编写效率!利用GVIM这一高效的编辑工具并添加自定义模板,通过简短的脚本命令即可自动生成所有常 ...

  7. .net敏捷开发框架 力软敏捷开发(learun) 让开发变的更简单

    版本:6.1.6.2 体验地址:www.fishcmonkey.com 联系QQ:6539471

  8. .net敏捷开发框架 力软(learun) 让开发变的更简单

    版本:6.1.6.2 体验地址:www.fishcmonkey.com 联系QQ:6539471

  9. JAVA6开发WebService (四)——SAAJ调用WebService

    转载自http://wuhongyu.iteye.com/blog/810571 前面写了个JAX-WS的小例子,看到用JAVA6开发WebService确实很简单,也很方便,不过前面也说了,JAVA ...

随机推荐

  1. Visual Studio Code 添加设置代码段(snippet)

    从VSCode发布以来就在关注,最近已经更新到版本0.10.8,已经支持了插件功能.日常使用编辑器已经由Sublime Text迁移到了VSCode.使用中遇到了这个问题,在网上也没搜到解决方案.记录 ...

  2. 终端可以连接MySQL但是navicat还是报错:Can't connect to MySQL server on '127.0.0.1'(61)

    1)选择第二个: 2)勾选 Use socket file就行了

  3. linux永久更改eth0的ip地址

    linux中永久修改ip和子网掩码,可以用命令也可以直接到文件里修改.这里推荐直接到文件中修改.1.进入网卡配置文件 vi /etc/sysconfig/network-scripts/ifcfg-e ...

  4. 任意List 和DatabTable的转换

     public static IEnumerable<T> ToEntityList<T>(this DataTable table) where T : class      ...

  5. mplayer依赖关系不满足

    mplayer以及其他fork出来的如mplayer2是命令行下的媒体播放器.一般ubuntu等的桌面系统都自带.然而自己使用了一段时间后突然出现缺少库文件,各种依赖关系不满足也未能重新安装.为了以后 ...

  6. Android——PULL解析XML

    简介 Android中常常使用XML文件保存用户的APP设置信息.因此需要对XML文件的相关操作进行了解.本文将以<学生信息管理系统>为案例背景进行介绍相关的XML解析的介绍,以及其他相关 ...

  7. [iOS 视频流开发-获得视频帧处理]

    调用视频流所使用框架:<Foundation/Foundation.h> 必须定义的参数: 1.AVCaptureDevice(捕获设备:前置.后置摄像头等) 2.AVCaptureInp ...

  8. [U3D 画起重机,绑脚本和控制它运动的基本操作]

    之前在学习Unity3D,不知为何网上的教学资源真是少啊...我某段时间还卡在不知如何让物体绑个脚本自动运动.. 之所以要学习U3D是因为导师让我做的IOS项目里有个需要模拟起重机,从而控制真实起重机 ...

  9. HDU 1166 敌兵布阵(线段树模板题)

    题目链接: 传送门 敌兵布阵 Time Limit: 2000MS     Memory Limit: 32768 K Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头 ...

  10. MAC中Django中runserver提示Can't connect to local MySQL server through socket '/tmp/mysql.sock错误

    好像不止遇到一次,直接Google就可以了,在stackoverflow中就有答案,答案就是你没有开MySQL - -. stackoverflow链接见 http://stackoverflow.c ...