2013-Hessian
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。
介绍
注意事项
服务器端
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() );
%>
java客户端
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());
}
}
2013-Hessian相关推荐
- 2013计算机视觉代码合集二
申明,本文非笔者原创,本文转载自:http://www.yuanyong.org/blog/cv/resource-code Feature Detection and Description Gen ...
- 2013计算机视觉代码合集
注:下面有project网站的大部分都有paper和相应的code.Code一般是C/C++或者Matlab代码. 最近一次更新:2013-9-7 一.特征提取Feature Extraction: ...
- Android项目快速开发框架探索(Mysql + OrmLite + Hessian + Sqlite)
前言 结合之前所用的ormlite和hessian,再加上SAE已经支持JAVA,把服务端切换到JAVA,也就有了本文.使用hessian来做数据传输,ormlite来实现客户端与服务端的数据存储,极 ...
- 机器学习及其应用2013, 机器学习及其应用2015
机器学习及其应用2013 内容简介 书籍 计算机书籍 机器学习是计算机科学和人工智能中非常重要的一个研究领域.近年来,机器学习不仅在计算机科学的众多领域中大显身手,还成为一些交叉学科的重要支持技术.本 ...
- 【ZFNet】Visualizing and Understanding Convolutional Networks (2013) 全文翻译
作者:Matthew D. Zeiler and Rob Fergus (Dept. of Computer Science, New York University, USA, {zeiler,fe ...
- matlab血管图像增强算法,基于Hessian特征的视网膜血管图像的增强滤波算法
第30卷第3期 2013年6月 Vol.30 No.3 Jun.,2013 华 东 交 通 大 学 学 报 Journal of East China Jiaotong University 文章编号 ...
- matlab 海塞矩阵 多元函数求极值,基于Hessian矩阵的多元函数极值问题.pdf
您所在位置:网站首页 > 海量文档  > 电子工程/通信技术 > 无线电电子学/电信技术 基于Hessian矩阵的多元 ...
- visual studio 2013 中配置OpenCV2.4.13 姿势
首先在path中添加 "C:\OpenCV\opencv\build\x64\vc12\bin" (地址随实际变化) 注:添加的都是*86不使用*64 在visualstudi ...
- SharePoint 2013 图文开发系列之代码定义列表
在SharePoint的开发中,用Visual Studio自定义列表是经常会用到的,因为很多时候,我们并不会手动创建列表,而手动创建列表在测试服务器和正式机之间同步字段,也很麻烦,所以我们经常用代码 ...
- 2013年3月百度之星B题
Sigma Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Problem Descr ...
最新文章
- centos6.3 nginx php,CentOS 6.3 编译安装Nginx+MySQL+PHP
- tar压缩解压命令详解
- 给嵌入式工程师的一封信
- DataX配置及使用
- VS Code Remote 发布!开启远程开发新时代
- 如何制作一个横版格斗过关游戏 Cocos2d x 2 0 4
- 设计灵感|单色配色,如何让海报更出彩?
- JVM分代垃圾回收策略的基础概念
- web前端前景近几年怎么样,是否饱和?
- This is probably because there is no OLE editor registered against the type of file you were trying
- spring中的aware接口
- Google云也想为中国企业服务,正与腾讯浪潮谈合作
- java 接口是抽象类吗_我是如何理解Java抽象类和接口的
- Output Arcade Utility Tool for Mac(Arcade音色库破解导入工具)
- 遍历Panel1中所有label控件的Text
- Python 自动化工具开源及办公自动化 10 高频操作,代码可直接套用
- 图片格式转换 png,jpg,gif等格式 的python小程序
- 力扣 460. LFU 缓存
- 2020年有寓意的领证日期_2020年领结婚证的好日子,2020年领证寓意好日子
- 基于知识图谱构建新一代数据智能基础设施