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

介绍

注意事项

在进行基于Hessian的项目开发时,应当注意以下几点:
▲JAVA服务器端必须具备以下几点:
·包含Hessian的jar包
·设计一个接口,用来给 客户端调用
·实现该接口的功能
·配置 web.xml,配好相应的servlet
·对象必须实现Serializable 接口
·对于复杂对象可以使用Map的方法传递
▲客户端必须具备以下几点:
·java客户端包含Hessian.jar的包。C#中引用hessianCSharp.dll
·具有和服务器端结构一样的接口。包括命名空间都最好一样
·利用HessianProxyFactory调用远程接口。
简单JAVA客户端例子:

服务器端

新建一个名EasyHession的webProject项目,将Hessian.jar放入 web-inf下的lib中
创建接口:

package app.demo;
public interface BasicAPI {
public void setGreeting(String greeting);
public String hello();
public User getUser();
}
实现接口:
package app.demo;
public class BasicService implements BasicAPI {
private String _greeting = "Hello, world";
public void setGreeting(String greeting)
{
_greeting = greeting;
System.out.println("set greeting success:"+_greeting);
}
public String hello()
{
return _greeting;
}
public User getUser() {
return new User("prance", "meshow");
}
}
创建一个实现Serializable的projo类也可以是Bean。
package app.demo;
import java.io.Serializable;
public class User implements Serializable{
String userName ="snoopy";
String password ="showme";
public User(Stringuser, String pwd) {
this.userName =user;
this.password= pwd;
}
public String getUserName() {
return userName;
}
public String getPassword() {
return password;
}
}

接下来是配置web.xml

<?xml version="1.0"encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<init-param>
<param-name>service-class</param-name>
<param-value>app.demo.BasicService</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>

为了测试可以在编辑一个简单的test.jsp

<%@ pageimport="com.caucho.hessian.client.HessianProxyFactory,
app.demo.BasicAPI"%>
<%@page language="java"%>
<%
HessianProxyFactory factory = newHessianProxyFactory();
String url = ("http://" +request.getServerName() + ":" +request.getServerPort() +
request.getContextPath() + "/hello");
out.println(url);
BasicAPI basic = (BasicAPI) factory.create(BasicAPI.class,url);
out.println("Hello: " + basic.hello());
out.println("Hello: " + basic.getUser() .getUserName() );
out.println("Hello: " +basic.getUser().getPassword() );
%>
将一切配置成功后,将项目发布到web 服务器上去,可以是Tomcat,Rain等等。
进入
结果如下:
Hello: Hello, world
Hello: snoopy
Hello: showme
说明服务器端已经编写成功。

java客户端

创建一个名为HessianClient的JAVAProject,载入hessian.jar包
创建与服务器端一样的接口,及基础类
public interface BasicAPI{
public void setGreeting(String greeting);
public String hello();
public User getUser();
}
import java.io.Serializable;
public class User implements Serializable{
String userName ="snoopy";
String password ="showme";
public User(Stringuser, String pwd) {
this.userName =user;
this.password= pwd;
}
public String getUserName() {
return userName;
}
public String getPassword() {
return password;
}
}

创建客户端程序

importcom.caucho.hessian.client.HessianProxyFactory;
public class BasicClient {
public static void main(String[] args)
throwsException
{
String url ="http://127.0.0.1:8080/Hessian/hello";
HessianProxyFactory factory = new HessianProxyFactory();
BasicAPI basic = (BasicAPI) factory.create(BasicAPI.class, url);
System.out.println("Hello:" + basic.hello());
System.out.println("Hello:" + basic.getUser().getUserName());
System.out.println("Hello:" + basic.getUser().getPassword());
basic.setGreeting("HelloGreeting");
System.out.println("Hello:" + basic.hello());
}
}
运行结果:
Hello: Hello, world
Hello: prance
Hello: meshow
Hello: Hello Greeting

2013-Hessian相关推荐

  1. 2013计算机视觉代码合集二

    申明,本文非笔者原创,本文转载自:http://www.yuanyong.org/blog/cv/resource-code Feature Detection and Description Gen ...

  2. 2013计算机视觉代码合集

    注:下面有project网站的大部分都有paper和相应的code.Code一般是C/C++或者Matlab代码. 最近一次更新:2013-9-7 一.特征提取Feature Extraction: ...

  3. Android项目快速开发框架探索(Mysql + OrmLite + Hessian + Sqlite)

    前言 结合之前所用的ormlite和hessian,再加上SAE已经支持JAVA,把服务端切换到JAVA,也就有了本文.使用hessian来做数据传输,ormlite来实现客户端与服务端的数据存储,极 ...

  4. 机器学习及其应用2013, 机器学习及其应用2015

    机器学习及其应用2013 内容简介 书籍 计算机书籍 机器学习是计算机科学和人工智能中非常重要的一个研究领域.近年来,机器学习不仅在计算机科学的众多领域中大显身手,还成为一些交叉学科的重要支持技术.本 ...

  5. 【ZFNet】Visualizing and Understanding Convolutional Networks (2013) 全文翻译

    作者:Matthew D. Zeiler and Rob Fergus (Dept. of Computer Science, New York University, USA, {zeiler,fe ...

  6. matlab血管图像增强算法,基于Hessian特征的视网膜血管图像的增强滤波算法

    第30卷第3期 2013年6月 Vol.30 No.3 Jun.,2013 华 东 交 通 大 学 学 报 Journal of East China Jiaotong University 文章编号 ...

  7. matlab 海塞矩阵 多元函数求极值,基于Hessian矩阵的多元函数极值问题.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp电子工程/通信技术&nbsp>&nbsp无线电电子学/电信技术 基于Hessian矩阵的多元 ...

  8. visual studio 2013 中配置OpenCV2.4.13 姿势

    首先在path中添加 "C:\OpenCV\opencv\build\x64\vc12\bin"   (地址随实际变化) 注:添加的都是*86不使用*64 在visualstudi ...

  9. SharePoint 2013 图文开发系列之代码定义列表

    在SharePoint的开发中,用Visual Studio自定义列表是经常会用到的,因为很多时候,我们并不会手动创建列表,而手动创建列表在测试服务器和正式机之间同步字段,也很麻烦,所以我们经常用代码 ...

  10. 2013年3月百度之星B题

    Sigma Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Problem Descr ...

最新文章

  1. centos6.3 nginx php,CentOS 6.3 编译安装Nginx+MySQL+PHP
  2. tar压缩解压命令详解
  3. 给嵌入式工程师的一封信
  4. DataX配置及使用
  5. VS Code Remote 发布!开启远程开发新时代
  6. 如何制作一个横版格斗过关游戏 Cocos2d x 2 0 4
  7. 设计灵感|单色配色,如何让海报更出彩?
  8. JVM分代垃圾回收策略的基础概念
  9. web前端前景近几年怎么样,是否饱和?
  10. This is probably because there is no OLE editor registered against the type of file you were trying
  11. spring中的aware接口
  12. Google云也想为中国企业服务,正与腾讯浪潮谈合作
  13. java 接口是抽象类吗_我是如何理解Java抽象类和接口的
  14. Output Arcade Utility Tool for Mac(Arcade音色库破解导入工具)
  15. 遍历Panel1中所有label控件的Text
  16. Python 自动化工具开源及办公自动化 10 高频操作,代码可直接套用
  17. 图片格式转换 png,jpg,gif等格式 的python小程序
  18. 力扣 460. LFU 缓存
  19. 2020年有寓意的领证日期_2020年领结婚证的好日子,2020年领证寓意好日子
  20. 基于知识图谱构建新一代数据智能基础设施

热门文章

  1. 360搜索网银防骗方法
  2. 【LeetCode】198. 入室偷窃
  3. 关于技术Blog的越来越少
  4. C#把一个文件夹下所有文件删除
  5. 猿创征文|date-fns 工作日助手函数
  6. OpenSSL命令--x509
  7. Mac上的PPT忘记保存了怎么办?
  8. [Datawhale-李宏毅机器学习-39期]-001-机器学习介绍
  9. 火车票 网上订票 经验
  10. 龙之谷虚拟机为什么登录不了(龙之谷无法连接到登录服务器)