Lync Server 2010 安装详解
2011-05-23 17:12
246 查看
一、 Hessian原理简介:
Hessian
是由
caucho
提供的一个
基于
Binary-RPC
协议实现
的远程通讯
library
。在使用过程中,请求端
通过
Hessian
本身提供的
API
来向服务端发起请求,
Hessian
通过其自定义的串行化机制将请求信息进行序列化,产生二进制流,然后
用Http
协议进行传输。
响应端根据
Hessian
提供的
API
来接收请求,
而后,Hessian
根据其私有的串行化机制来将请求信息进行反序列化,传递给使用者时已是相应的请求信息对象了。
处理完毕后直接返回,
hessian
将结果对象进行序列化,传输至调用端。
二、 Hessian
调用实例
1. 服务端实体类:
2.服务端接口:
3.服务端接口实现类:
4. web.xml中的配置:
5. WEB-INF下 remoting-servlet.xml 的配置:
6. 客户端要有对应的实体类和接口,客户端代码:
客户端运行结果如下:
HessianProxy[http://127.0.0.1:8080/hessianDemo/hessian]
airline: Shanghai - Shenzhen
color: silver
length: 30
owner: MU
三、
在进行基于Hessian的项目开发时,应当注意以下几点:
▲JAVA服务器端必须具备以下几点:
-包含Hessian的jar包;
-设计一个接口,用来给客户端调用;
-实现该接口的功能;
-配置web.xml,配好相应的servlet;
-对象必须实现Serializable 接口;
-对于复杂对像可以使用Map的方法传递;
▲客户端必须具备以下几点:
-java客户端包含Hessian.jar的包;
-具有和服务器端结构一样的接口。包括命名空间都最好一样;
-利用HessianProxyFactory调用远程接口。
四、 Hessian特点总结:
-整个jar很小,200多K,3.1版本的,当然,我下载的for java的版本;
-配置很简单,基本上不需要花什么经历就配置出来了;
-功能强大,可以将soap抛开,也可以把EJB抛开,采用二进制来传递对象;
-拥有多种语言支持,python c++ .net 甚至 flex 都可以做为client。
下载地址: http://hessian.caucho.com/
Hessian
是由
caucho
提供的一个
基于
Binary-RPC
协议实现
的远程通讯
library
。在使用过程中,请求端
通过
Hessian
本身提供的
API
来向服务端发起请求,
Hessian
通过其自定义的串行化机制将请求信息进行序列化,产生二进制流,然后
用Http
协议进行传输。
响应端根据
Hessian
提供的
API
来接收请求,
而后,Hessian
根据其私有的串行化机制来将请求信息进行反序列化,传递给使用者时已是相应的请求信息对象了。
处理完毕后直接返回,
hessian
将结果对象进行序列化,传输至调用端。
二、 Hessian
调用实例
1. 服务端实体类:
package com.shhx.model; import java.io.Serializable; public class PlaneBean implements Serializable { private String color; private String length; private String owner; private static final long serialVersionUID = 1L; public PlaneBean() { } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public String getLength() { return length; } public void setLength(String length) { this.length = length; } public String getOwner() { return owner; } public void setOwner(String owner) { this.owner = owner; } }
2.服务端接口:
package com.shhx.service; import com.shhx.model.PlaneBean; public interface IBasic { public String getAirLine(); public PlaneBean getPlaneBean(); }
3.服务端接口实现类:
package com.shhx.service; import com.caucho.hessian.server.HessianServlet; import com.shhx.model.PlaneBean; public class IBasicImpl extends HessianServlet implements IBasic { private String airline= "Shanghai - Shenzhen"; public String getAirLine() { return airline; } public PlaneBean getPlaneBean() { PlaneBean plane = new PlaneBean(); plane.setColor("silver"); plane.setLength("30"); plane.setOwner("MU"); return plane; } }
4. web.xml中的配置:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/remoting-servlet.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>hessian</servlet-name> <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class> <init-param> <param-name>home-class</param-name> <param-value>com.shhx.service.IBasicImpl</param-value> </init-param> <init-param> <param-name>home-api</param-name> <param-value>com.shhx.service.IBasic</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>hessian</servlet-name> <url-pattern>/hessian</url-pattern> </servlet-mapping> </web-app>
5. WEB-INF下 remoting-servlet.xml 的配置:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!-- 定义普通bean实例--> <bean id="iBasicImpl" class="com.shhx.service.IBasicImpl" /> <!-- 使用HessianServiceExporter 将普通bean导出成Hessian服务--> <bean name="/HessianRemoting" class="org.springframework.remoting.caucho.HessianServiceExporter"> <!-- 需要导出的目标bean--> <property name="service" ref="iBasicImpl" /> <!-- Hessian服务的接口--> <property name="serviceInterface" value="com.shhx.service.IBasic" /> </bean> </beans>
6. 客户端要有对应的实体类和接口,客户端代码:
package com.shhx.service; import java.net.MalformedURLException; import com.caucho.hessian.client.HessianProxyFactory; import com.shhx.model.PlaneBean; public class BasicClient { /** * @param args */ public static void main(String[] args) { String url = "http://127.0.0.1:8080/hessianDemo/hessian"; HessianProxyFactory factory = new HessianProxyFactory(); try { IBasic basic = (IBasic) factory.create(IBasic.class, url); System.out.println(basic); System.out.println("airline: " + basic.getAirLine()); PlaneBean plane = basic.getPlaneBean(); System.out.println("color: " + plane.getColor()); System.out.println("length: " + plane.getLength()); System.out.println("owner: " + plane.getOwner()); } catch (MalformedURLException e) { e.printStackTrace(); } } }
客户端运行结果如下:
HessianProxy[http://127.0.0.1:8080/hessianDemo/hessian]
airline: Shanghai - Shenzhen
color: silver
length: 30
owner: MU
三、
在进行基于Hessian的项目开发时,应当注意以下几点:
▲JAVA服务器端必须具备以下几点:
-包含Hessian的jar包;
-设计一个接口,用来给客户端调用;
-实现该接口的功能;
-配置web.xml,配好相应的servlet;
-对象必须实现Serializable 接口;
-对于复杂对像可以使用Map的方法传递;
▲客户端必须具备以下几点:
-java客户端包含Hessian.jar的包;
-具有和服务器端结构一样的接口。包括命名空间都最好一样;
-利用HessianProxyFactory调用远程接口。
四、 Hessian特点总结:
-整个jar很小,200多K,3.1版本的,当然,我下载的for java的版本;
-配置很简单,基本上不需要花什么经历就配置出来了;
-功能强大,可以将soap抛开,也可以把EJB抛开,采用二进制来传递对象;
-拥有多种语言支持,python c++ .net 甚至 flex 都可以做为client。
下载地址: http://hessian.caucho.com/
相关文章推荐
- Lync Server 2010详解系列2:创建和发布拓扑
- WIN中SharePoint Server 2010 入门安装部署详解
- Powershell 方式安装Lync Server 2010 Lync Server 2013 前提组件。
- Lync Server 2010 安装笔记之八-边缘服务器部署
- Lync Server 2010 安装要点
- Lync Server 2010安装准备(三)—— 前端服务器上安装Lync Server 2010
- Lync Server 2010的部署系列_第六章 安装配置拓扑生成器、前端Server、前端池
- Lync Server 2010 IIS组件安装Powershell
- Lync Server 2010标准版系列PART5:安装部署
- Lync Server 2010拓扑图规划详解
- Lync Server 2010拓扑图规划详解
- 第四章 Lync server 2010的安装
- Lync Server 2010详解系列1:环境介绍和准备
- Lync Server 2010不同规模拓扑图详解
- Lync Server 2010详解系列4:Lync监控服务器的部署
- Lync Server 2010详解系列6:Lync Server边缘服务器的部署 (无反向代理)
- Lync Server 2010详解系列3:Lync Server的部署
- Lync Server 2010详解系列8:Lync移动功能一步到位
- Lync Server 2010安装笔记之七—存档服务器部署记录
- Lync Server 2010安装笔记之四前端服务器安装