hessian的简单使用
程序员文章站
2022-05-28 16:26:45
...
Hessian是一个轻量级的remotingonhttp工具,使用简单的方法提供了RMI的功能。相比Webservice,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合发送二进制数据。
在进行基于Hessian的项目开发时,应当注意一下几点:
Java服务器端必须具备:
■包含Hessian的jar包
■设计一个接口,用来给客户端调用
■实现该接口的功能
■配置web.xml,配置好相应的servlet
■由于使用二进制RPC协议传输数据,对象必须进行序列化,实现Serializable接口
■对于复杂对象可以使用Map的方法传递
Java客户端必须具备:
□Java客户端包含Hessian的jar包
□具有和服务器端结构一样的接口,包括命名空间都最好一样
□利用HessianProxyFactory调用远程接口
Hessian的简单例子
Hessian服务端
第一步:创建Web Project(HessianServer),并将hessian-3.2.1.jar放入WEB-INF/lib文件夹下。
第二步:创建User类,注意:实现Serializable接口
import java.io.Serializable;
public class User implements Serializable{
private String name;
private Integer age;
public User() {
super();
}
public User(String name, Integer age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
第三步:创建接口IBasicApi
import com.mahc.hessian.domain.User;
public interface IBasicApi {
/* 设置用户名 */
public boolean setUserName(String name);
/* 获取问候 */
public String sayHello();
/* 获取用户信息 */
public User getUser();
}
第四步:创建实现IBasicApi的BasicService
import com.mahc.hessian.domain.User;
public class BasicService implements IBasicApi{
private String name;
@Override
public boolean setUserName(String name) {
this.name = name;
return false;
}
@Override
public String sayHello() {
return "Hello "+ name+",Welcome to Hessian!";
}
@Override
public User getUser() {
return new User(name, 23);
}
}
第五步:配置WEB-INF下的web.xml<!-- Hessian在web.xml上的配置 -->
<servlet>
<servlet-name>HessianServlet</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<init-param>
<param-name>service-class</param-name>
<param-value>com.mahc.hessian.BasicService</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>HessianServlet</servlet-name>
<url-pattern>/api/service</url-pattern>
</servlet-mapping>
Hessian客户端
第一步:创建Java Project(HessianClient),并将hessian-3.2.1.jar放入lib文件夹下
第二步:创建与服务端一致的com.mahc.hessian.domain.User和com.mahc.hessian.IBasicApi
第三步:创建客户端测试
public class ClientTest {
public static void main(String[] args) throws MalformedURLException {
String url = "http://localhost:8080/HessianServer/api/service";
HessianProxyFactory factory = new HessianProxyFactory();
IBasicApi api = (IBasicApi) factory.create(IBasicApi.class, url);
api.setUserName("mahc");
System.out.println(api.sayHello());
System.out.println(api.getUser().getName());
System.out.println(api.getUser().getAge());
}
}
第四步:部署HessianServer,启动Tomcat,运行ClientTest。查看运行结果。
总结:
在服务端需要配置接口与接口实现类,在web.xml里配置HessianServlet的servlet,并配置初始化参数,name为service-class,value为接口的实现类
在客户端需要配置与服务端相同名字的接口
上一篇: Linux下CMake简明教程
下一篇: Hessian 使用入门
推荐阅读
-
很简单的批量小计求和 使用快捷键配合鼠标分秒搞定
-
php中的路径问题与set_include_path使用介绍
-
mysql中内存的使用与分配_MySQL
-
[PHP]如何在百度(BAE)和新浪(SAE)的云平台使用PHP连接MySQL并返
-
PHP读取PDF内容(LINUX下XPDF的配置和使用)_PHP教程
-
编写一个函数reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数
-
PHP的cURL库简单和有效地抓网页_PHP教程
-
DB2 Merge Into语句的使用
-
使用xdebug调试PHP 找出PHP程序的瓶颈
-
使用php 获取时间今天明天昨天时间戳的详解_PHP教程