求此韩服玫瑰花头像原图高清原图

Hessian:hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能,相比WebService,Hessian更简单、快捷。
采用的是二进制RPC协议,因为采用了二进制协议,所以它很适合于发送二进制数据,Hessian主要作面向对象的消息通信。
Hessian的初衷就是支持动态类型,格式紧凑,跨语言。Hessian是使用自己的序列化机制实现的编组和反编组,其支持的数据类型是有限制的,不支持复杂的对象,可以穿透防火墙。 &在这里不得不说一下RMI:RMI是一组用户开发分布式应用程序的API。他使用的是java序列化机制实现调用及返回值的编组于反编组。它使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(Java Remote Method Protocol)。他可以被看做是RPC的Java版本,因为传统的RPC并不能很好的应用于分布式对象系统。而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。他也有它的缺点,他只能通过RMI协议来进行访问无法通过HTTP协议访问,无法穿透防火墙。 & & 还有一种远程调用方法就是HttpInvoker:他也是将参数和返回值通过Java的序列化机制进行编组和反编组,它具有RMI的支持所有可序列化对象的优点。试使用Http协议传输二进制流的,同时又具有Hessian、Burlap(传输xml文本)的优点。
Hessian:写一个Hessian需要注意的问题: & & &
1、JAVA服务器端必须具备以下几点: & & & &
包含Hessian的jar包 & & & & &
设计一个接口,用来给客户端调用 & & & &
实现该接口的动能 & & & & &
配置web.xml,配置相应的servlet & & & &
对象必须实现Serializable接口 & & & & &
对于复杂对象可以使用Map的方法传递 & &
&2、客户端必须具备以下几点: & & & &
java客户端包含Hessian.jar包 & & & & &
具有和服务器端结构一样的接口和实体类。包括命名空间都最好一样。
Hessian的优点:
1- 整个jar很小,200多K,3.1版本的,当然,我下载的for java的版本.
2- 配置很简单,基本上不需要花什么经历就配置出来了
3- 功能强大,可以将soap抛开,也可以把EJB抛开,采用二进制来传递对象
4- 拥有多种语言支持,python&c++& .net 甚至 flex 都可以做为client端
WebService简介
(1)WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。(2)WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(web服务定义语言)/SOAP(简单请求协议)规范的。(3)WebService=WSDL+SOAP+UDDI(webservice的注册),Soap是由Soap的part和0个或多个附件组成,一般只有part,在part中有Envelope和Body。(4)Web Service是通过提供标准的协议和接口,可以让不同的程序集成的一种SOA架构。
WebService的优点
(1) 可以让异构的程序相互访问(跨平台)。(2) 松耦合。(3) 基于标准协议(通用语言,允许其他程序访问)。
WebService的缺点: (1) WebService使用了XML对数据封装,会造成大量的数据要在网络中传输。
(2) WebService规范没有规定任何与实现相关的细节,包括对象模型、编程语言,这一点,它不如CORBA。
WebService的基本原理
(1) Service Provider采用WSDL描述服务。(2) Service Provider 采用UDDI将服务的描述文件发布到UDDI服务器(Register server)。(3)Service Requestor在UDDI服务器上查询并 获取WSDL文件。(4)Service requestor将请求绑定到SOAP,并访问相应的服务。
阅读(...) 评论()&&&&Hessian和Burlap是由Caucho Technology提供的基于HTTP协议的轻量级远程服务解决方案。他们都致力于借助尽可能简单那的API和通信协议来简化Web服务。&&&&Hession和Burlap就如同一个事物的两面,但是每一个解决方案都服务于略微不同的目的。Hession就像RMI一样,使用二进制尽心客户端和服务端的交互。但与其他二进制远程调用技术(如,RMI)不同的是,它的二进制消息可以移植到其他开发语言中(如,PHP、Python、C++、C#)。Burlap是一种基于XML的远程调用技术,这使得它可以自然而然的移植到任何能够解析XML的语言上。正因为如此,Burlap比起Hessian的二进制格式而言有更强的可读性。但,与其他基于XML的远程技术(如,SOAP、XML-RPC)不同,Burlap的消息结构尽可能的简单,不需要额外的外部定义语言(如,WSDL、IDL)。&&&&你可能想知道如何在Hession和Burlap之间抉择,很大程度,他们是一样的。唯一的区别在于Hession的消息似乎二进制的,在带宽上更有优势,而Burlap的消息是XML的,有更好的可读性。&&&&由于Hessian和Burlap都是基于HTTP协议的,他们都解决了RMI所头疼的防火墙渗透问题。但是当传递过来的RPC消息中包含序列化对象时,RMI就完胜Hessian和Burlap了。因为Hessian和Burlap都采用私有的序列化机制,如果数据模型非常复杂,那么Hessian和Burlap的序列化模型可能无法胜任。
二、Hession开发步骤
&&& 1、编写服务接口
1 package blogs.javalouvre.
3 public interface GreetService {
String sayHello(String name);
&&& 2、编写服务实现类,须继承自com.caucho.hessian.server.HessianServlet
1 package blogs.javalouvre.
3 import com.caucho.hessian.server.HessianS
5 public class GreetServiceImpl extends HessianServlet implements GreetService {
private static final long serialVersionUID = 1295739L;
public String sayHello(String name) {
return "Hello " +
&&& 3、配置web.xml
1 &?xml version="1.0" encoding="UTF-8"?&
2 &web-app xmlns="/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd"
version="2.5"&
&servlet-name&HessianServlet&/servlet-name&
&servlet-class&com.caucho.hessian.server.HessianServlet&/servlet-class&
&init-param&
&param-name&home-class&/param-name&
&param-value&</blogs.javalouvre.service.GreetServiceImpl&/param-value&
&/init-param&
&init-param&
&param-name&home-api&/param-name&
&param-value&</blogs.javalouvre.service.GreetService&/param-value&
&/init-param&
&load-on-startup&1&/load-on-startup&
&/servlet&
&servlet-mapping&
&servlet-name&HessianServlet&/servlet-name&
&url-pattern&/GreetService&/url-pattern&
&/servlet-mapping&
&welcome-file-list&
&welcome-file&index.html&/welcome-file&
&welcome-file&index.htm&/welcome-file&
&welcome-file&index.jsp&/welcome-file&
&/welcome-file-list&
32 &/web-app&
&&& 4、测试客户端
1 package blogs.javalouvre.
3 import java.net.MalformedURLE
5 import com.caucho.hessian.client.HessianProxyF
6 import blogs.javalouvre.service.GreetS
8 public class Client {
public static void main(String[] args) {
String url = "http://10.108.1.138:8080/Hessian/GreetService";
GreetService service = (GreetService) (new HessianProxyFactory()).create(GreetService.class, url);
System.out.println(service.sayHello("Jobs"));
} catch (MalformedURLException e) {
e.printStackTrace();
三、Burlap开发步骤
&&& 1、编写服务接口(同Hessian示例的接口)&&& 2、编写服务实现类,须继承自com.caucho.burlap.server.BurlapServlet
1 package blogs.javalouvre.
3 import com.caucho.burlap.server.BurlapS
5 public class GreetServiceImpl extends BurlapServlet implements GreetService {
public String sayHello(String name) {
return "Hello " +
&&& 3、配置web.xml
1 &?xml version="1.0" encoding="UTF-8"?&
2 &web-app xmlns="/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd"
version="2.5"&
&servlet-name&GreetService&/servlet-name&
&servlet-class&</blogs.javalouvre.service.GreetServiceImpl&/servlet-class&
&load-on-startup&1&/load-on-startup&
&/servlet&
&servlet-mapping&
&servlet-name&GreetService&/servlet-name&
&url-pattern&/GreetService&/url-pattern&
&/servlet-mapping&
&welcome-file-list&
&welcome-file&index.html&/welcome-file&
&welcome-file&index.htm&/welcome-file&
&welcome-file&index.jsp&/welcome-file&
&/welcome-file-list&
24 &/web-app&
&&& 4、测试客户端
1 package blogs.javalouvre.
3 import java.net.MalformedURLE
5 import com.caucho.burlap.client.BurlapProxyF
6 import blogs.javalouvre.service.GreetS
8 public class Client {
public static void main(String[] args) {
String url = "http://10.108.1.138:8080/Burlap/GreetService";
GreetService service = (GreetService) (new BurlapProxyFactory()).create(GreetService.class, url);
System.out.println(service.sayHello("Jobs"));
} catch (MalformedURLException e) {
e.printStackTrace();
阅读(...) 评论()

我要回帖

更多关于 情侣头像高清原图 的文章

 

随机推荐