JAVA接口http协议传输—Hessian

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

注意事项

在进行基于Hessian的项目开发时,应当注意以下几点:

▲JAVA服务器端必须具备以下几点:

·包含Hessian的jar包

·设计一个接口,用来给客户端调用
·实现该接口的功能
·配置web.xml,配好相应的servlet
·对象必须实现Serializable 接口
·对于复杂对象可以使用Map的方法传递
▲客户端必须具备以下几点:
·java客户端包含Hessian.jar的包。C#中引用hessianCSharp.dll
·具有和服务器端结构一样的接口。包括命名空间都最好一样
·利用HessianProxyFactory调用远程接口。
服务器端实现:
创建一个实现Serializable的projo类也可以是Bean:
package com.jiadesoft.hessian;
import java.io.Serializable;
@SuppressWarnings("serial")
public class User implements Serializable {
private String name;
private String password;
public User(String name, String password) {
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
创建服务端接口:
package com.jiadesoft.hessian;
public interface IReceive {
public String getStrTest();
public User getUser();
}
实现服务端接口:
package com.jiadesoft.hessian;
public class ReceiveService implements IReceive {
@Override
public String getStrTest() {
return "this is test string!";
}
@Override
public User getUser() {
return new User("prance", "meshow");
}
}
接下来是配置web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<servlet>
<servlet-name>hessiantest</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<init-param>
<param-name>service-class</param-name>
<param-value>com.jiadesoft.hessian.ReceiveService</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>hessiantest</servlet-name>
<url-pattern>/hessiantest</url-pattern>
</servlet-mapping>
</web-app>
为了测试可以在编辑一个简单的test.jsp
<%@ page
import="com.caucho.hessian.client.HessianProxyFactory,
com.jiadesoft.hessian.IReceive"
language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
HessianProxyFactory factory = new HessianProxyFactory();
String url = ("http://" + request.getServerName() + ":"
+ request.getServerPort() + request.getContextPath() + "/hessiantest");
out.println(url+"<br/>");
IReceive basic = (IReceive) factory.create(IReceive.class, url);
out.println("hessian test string: " + basic.getStrTest()+"<br/>");
out.println("hessian user name: " + basic.getUser().getName()+"<br/>");
out.println("hessian user password: " + basic.getUser().getPassword()+"<br/>");
%>

创建客户端

import com.caucho.hessian.client.HessianProxyFactory;
public class HessianClient {
public static void main(String[] args) throws Exception {
String url = "http://localhost:8080/missian/hessiantest";
HessianProxyFactory factory = new HessianProxyFactory();
IReceive basic = (IReceive) factory.create(IReceive.class, url);
System.out.println("Hello:" + basic.getStrTest());
System.out.println("Hello:" + basic.getUser().getName());
System.out.println("Hello:" + basic.getUser().getPassword());
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值