例子一:
Hessian 介绍
注意事项
在进行基于Hessian的项目开发时,应当注意以下几点:
▲JAVA服务器端必须具备以下几点:
·包含Hessian的jar包
·设计一个接口,用来给客户端调用
·实现该接口的功能
·配置web.xml,配好相应的servlet
·对象必须实现Serializable 接口
·对于复杂对象可以使用Map的方法传递
▲客户端必须具备以下几点:
·java客户端包含Hessian.jar的包。C#中引用hessianCSharp.dll
·具有和服务器端结构一样的接口。包括命名空间都最好一样
·利用HessianProxyFactory调用远程接口。
简单JAVA客户端例子:
服务器端
新建一个名EasyHession的webProject项目,将Hessian.jar放入web-inf下的lib中
创建接口:
packageapp.demo;
public interfaceBasicAPI {
public void setGreeting(Stringgreeting);
public String hello();
public User getUser();
}
实现接口:
packageapp.demo;
publicclass BasicService implements BasicAPI {
privateString _greeting = "Hello, world";
public void setGreeting(String greeting)
{
_greeting = greeting;
System.out.println("set greetingsuccess:"+_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 StringgetUserName() {
returnuserName;
}
public StringgetPassword() {
returnpassword;
}
}
接下来是配置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(Stringgreeting);
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 StringgetUserName() {
returnuserName;
}
public StringgetPassword() {
returnpassword;
}
}
创建客户端程序
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";
HessianProxyFactoryfactory = new HessianProxyFactory();
BasicAPIbasic = (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
例子二(附件是例子二的):
最近项目使用远程调用时用到了hessian,对于hessian还是处于入门阶段,大概做个资料的整理和收集。
Hessian的介绍
Hessian简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。
1、是基于什么协议实现的?
基于Binary-RPC协议实现。
2、怎么发起请求?
需通过Hessian本身提供的API来发起请求。
3、怎么将请求转化为符合协议的格式的?
Hessian通过其自定义的串行化机制将请求信息进行序列化,产生二进制流。
4、使用什么传输协议传输?
Hessian基于Http协议进行传输。
5、响应端基于什么机制来接收请求?
响应端根据Hessian提供的API来接收请求。
6、怎么将流还原为传输格式的?
Hessian根据其私有的串行化机制来将请求信息进行反序列化,传递给使用者时已是相应的请求信息对象了。
7、处理完毕后怎么回应?
处理完毕后直接返回,hessian将结果对象进行序列化,传输至调用端。
附件为一个简单的Hessian示例程序,包括client和server两个工程,simpleTest为简单的远程调用,springTest用于测试spring的注入。
注意事项:
1.导入相关的jar包。commons-logging-1.1.1.jar,hessian-3.2.0.jar,log4j-1.2.9.jar,spring.jar spring-web.jar spring-webmvc.jar
2.如果hessian传递的DO对象到远程,本地的DO对象所处的包的位置应该和服务端的一致,否则会报错。接口则可以不一样,只要远程的接口中含有本地所调用的方法。
3.spring中规定远程的配置文件为为remoting-servlet.xml,取别的名称会报错误,我也是看了spring的参考手册后才改正确的。
4.在struts 2中测试时开始老是报连接失败,因为hessian远程调用时以Servlet的方式进行访问的,而我又在服务端web.xml里面配置了struts2的拦截 /* ,因此servlet被拦截了(搞了我半天)
分享到:
相关推荐
hessian demo 例子 教程 看我blog http://blog.csdn.net/zfrong/archive/2009/12/29/5099222.aspx http://blog.csdn.net/zfrong/archive/2009/12/27/5083943.aspx
hessian关于java使用的一个小例子
这个hessian例子,包括一个service,一个client,大家只需要启动tomcat,并运行BasicClient这个类,即可
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。参考文档地址...
Hessian的小例子,包含两个工程:客户端和服务器端。直接导入工程,包都是全的。Enjoy!
Hessian例子.rarHessian例子.rarHessian例子.rarHessian例子.rar
NULL 博文链接:https://otom31.iteye.com/blog/1175539
Hessian例子,如何配置Hessian
hessian例子
NULL 博文链接:https://7wolfs.iteye.com/blog/916844
Hessian(C#)介绍及使用说明Hessian(C#)介绍及使用说明
基于WebService的Hessian例子,有代码,可以直接跑起来,一针见血的例子,相当 简单,有服务器端与客户端两个例子,相当好理解
一个基本的Hessian调用接头例子
演示例子分为三部分:Client 、Server、Skeleton; 其中,Client 是通过Hessian调用远程服务的客户端;Server是通过Hessian对外提供服务的服务端;Skeleton 是接口桥梁。 ...
远程调用方法就是HttpInvoker:他也是将参数和返回值通过Java的序列化机制进行编组和反编组,它具有RMI的支持所有可序列化对象的...试使用Http协议传输二进制流的,同时又具有Hessian、Burlap(传输xml文本)的优点。
需要安装zookeeper,默认端口,即可。 provider:运行RestProvider的main方法即可。 consumer:运行RestConsumer的main方法,在控制台,回车即可发一笔请求。
hessian学习实例,hessian框架例子,与Spring集成。包括了server端和client端
Hessian源代码 包括例子 源代码中写了好多注释 中文注释 很容易看懂
此例子有两个工程,hessianServer(服务端工程),hessianClient(客户端工程),把 hessianServer工程 启动之后就可以通过 hessianClient 访问 服务端的服务了。
Hessian Binary Web Service Protocol远程接口调用入门Demo例子!