`
_____bEn-beN
  • 浏览: 14333 次
社区版块
存档分类
最新评论

hessian接口

 
阅读更多

 

 

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

 

 

 

1   注意事项

 

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

 

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

 

·包含Hessianjar

 

·设计一个接口,用来给客户端调用

 

·实现该接口的功能

 

·配置web.xml,配好相应的servlet

 

·对象必须实现Serializable 接口

 

·对于复杂对象可以使用Map的方法传递

 

客户端必须具备以下几点:

 

·java客户端包含Hessian.jar的包。C#中引用hessianCSharp.dll

 

·具有和服务器端结构一样的接口。包括命名空间都最好一样

 

·利用HessianProxyFactory调用远程接口。

 

简单JAVA客户端例子:

 

2   服务器端

 

新建一个名EasyHessionwebProject项目,Hessian.jar放入web-inf下的lib

 

创建接口:

 

package app.demo;

 

public interface BasicAPI {

 

public void setGreeting(String greeting);

 

public String hello();

 

public User getUser();

 

}

 

实现接口:

 

package app.demo;

 

public class BasicService implements BasicAPI {

 

private String _greeting = "Hello, world";

 

public void setGreeting(String greeting)

 

{

 

_greeting = greeting;

 

System.out.println("set greeting success:"+_greeting);

 

}

 

public String hello()

 

{

 

return _greeting

 

}

 

public User getUser() {

 

return new User("prance", "meshow");

 

}

 

}

 

创建一个实现Serializableprojo类也可以是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 String getUserName() {

 

return userName;

 

}

 

public String getPassword() {

 

return password;

 

}

 

}

 

接下来是配置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 服务器上去,可以是TomcatRain等等。

 

进入

 

结果如下:

 

Hello: Hello, world

 

Hello: snoopy

 

Hello: showme

 

说明服务器端已经编写成功。

 

3   java客户端

 

创建一个名为HessianClientJAVAProject,载入hessian.jar

 

创建与服务器端一样的接口,及基础类

 

public interface BasicAPI{

 

public void setGreeting(String greeting);

 

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 String getUserName() {

 

return userName;

 

}

 

public String getPassword() {

 

return password;

 

}

 

}

 

4   创建客户端程序

 

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";

 

HessianProxyFactory factory = new HessianProxyFactory();

 

BasicAPI basic = (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接口性能测试

    用LR对hessian接口做性能测试,使用JAVA协议,没有界面的性能测试

    业务系统增加hessian接口解决方案

    在Spring+iabtis框架中,增加hessian接口,要实现以下几点: 1.绕过系统本身的认证,拦截器直接将该实现方法的servlet直接调用,需要重写拦截器。 2.由于绕过了spring和Struts,请求没有经过封装的事物管理器实例化,...

    Hessian 接口 Java Python.docx

    Java的Hessian库通常集成在如Resin这样的应用服务器中,例如提供的链接所示的Resin 3.1和4.0版本的文档和API参考,可以帮助开发者深入理解如何在Java和Python之间建立和使用Hessian接口。通过这些接口,开发者可以...

    hessian接口包

    这个压缩包包含了与Hessian接口相关的组件和示例,主要用于性能测试。 首先,我们看到的是`hkcss-client-1.0-SNAPSHOT.jar`,这是一个客户端库,它提供了与服务端进行Hessian通信的API。SNAPSHOT版本通常表示这是...

    Hessian 使用小结

    对于非X.509证书的加密,用户需要自定义类继承`HessianEnvelope`,并实现`wrap(Hessian2Output)`,`unwrap(Hessian2Input)`和`unwrapHeaders(Hessian2Input)`接口,以实现自己的加密逻辑。 **封装工具包** 虽然在...

    Hessian实例下载

    `Hessian`可能是一个服务器端的实现,展示了如何将服务暴露为Hessian接口,让客户端可以通过HTTP进行二进制调用。而`HessianClient`则可能是客户端的示例,演示了如何连接到服务器并调用服务端的方法。 Hessian的...

    外部接口调用 使用spring4+hessian4实例(二)

    4. **配置Spring**:在Spring的配置文件中,使用`&lt;bean&gt;`标签定义服务bean,并使用`&lt;hessian:service&gt;`或`&lt;bean class="..."&gt;`标签暴露该服务为Hessian接口。 5. **客户端配置**:在客户端,同样需要引入Hessian...

    接口测试面试题.docx

    - **Hessian接口** #### 三、HTTP接口的数据传递方式 HTTP接口数据传递主要通过两种方式:**GET**和**POST**。 1. **GET方式**:主要用于获取数据,如商品信息查询、搜索等场景。GET请求通常将参数附加在URL中。 ...

    Hessian Binary Web Service Protocol远程接口调用入门Demo

    本教程将通过一个入门Demo来介绍如何使用Hessian进行远程接口调用。 首先,让我们理解Hessian的优势。与XML-RPC相比,Hessian使用二进制编码,因此在网络传输时占用的带宽更少,解析速度更快。此外,Hessian支持...

    Hessian

    1. **服务器端**:服务器端需要实现Hessian服务接口,通过特定的HessianServlet或者HessianProxyFactory来创建服务暴露点。 2. **客户端**:客户端通过HessianProxyFactory创建一个代理对象,该对象可以像操作本地...

    Java和c#使用hessian通信

    一个简单的例子学习hessian服务:服务端为Java,客户端为C#。  先要准备好C#和Java的第三方类库:...  创建一个通信接口IHello: package hessian.test.server; import java.util.ArrayList; p

    Hessian多个版本打包下载

    这包括设置服务器端和客户端的Hessian服务,定义服务接口,处理序列化和反序列化的过程,以及调试可能出现的问题。在进行版本升级时,要注意兼容性问题,确保旧版本的服务仍能正常工作,同时充分利用新版本带来的...

    hessian案例,hessian案例

    通过简单的API,开发者可以轻松地创建服务端接口并暴露为Hessian服务,同时在客户端通过HessianProxyFactory来创建代理对象,调用远程服务就像调用本地方法一样。 3. **Python中的Hessian**:Python也有对应的...

    dubbo-hessian协议http请求demo(java)

    - 在消费者端的代码中,你可以像调用本地方法一样直接调用服务接口的方法,Dubbo会通过Hessian协议将调用转换为HTTP请求发送给服务提供者。 - 由于Hessian的序列化特性,数据类型可以被准确地传输,包括基本类型、...

    hessian

    2. **动态类型**:Hessian支持动态类型,这意味着服务端和客户端无需预先定义接口或数据结构,可以自动处理不同类型的参数和返回值。 3. **简单高效**:Hessian协议的设计目标是简单且快速,它不包含复杂的XML层次...

    Hessian的Spring配置

    2. **配置Hessian服务**: 在Spring的配置文件中,使用`&lt;bean&gt;`标签定义HessianExporter,暴露服务接口。 ```xml &lt;property name="urlPath" value="/helloHessian" /&gt; ``` 这里的`service`属性指向服务...

    hessian-4.0.33.jar

    2. Hessian服务端:实现了Hessian协议的服务端接口,允许开发者创建远程服务并暴露给客户端调用。 3. Hessian客户端:提供了客户端接口,可以调用远程服务,获取服务返回的结果。 4. 类型映射:定义了不同语言之间...

    Hessian应用

    2. **Web服务**:Hessian可以作为Web服务的底层通信协议,提供比RESTful或SOAP更高效的接口。 3. **微服务通信**:在微服务架构中,Hessian可作为服务间的通信协议,降低通信成本,提高系统响应速度。 Hessian的...

    hessianServer

    Hessian提供了一定的兼容性策略,但开发者仍需谨慎设计服务接口,避免因版本变化导致的不兼容问题。 8. **性能优化**: Hessian服务端的性能可以通过多种方式优化,例如减少不必要的数据序列化,优化网络通信,...

    Hessian协议格式

    Hessian 协议格式 Hessian 协议是一种轻量级的 remoting on http 工具,使用简单的方法提供了 RMI 的功能。采用的是二进制 RPC 协议,所以它很适合于发送二进制数据。Hessian 主要用作面向对象的消息通信。 ...

Global site tag (gtag.js) - Google Analytics