百科名片
Hessian 介绍
注意事项
服务器端
新建一个名EasyHession 的webProject 项目, 将Hessian.jar 放入web-inf 下的lib 中
创建接口:
packageapp.demo;
public interfaceBasicAPI {
public void setGreeting(Stringgreeting);
public String hello();
public User getUser();
}
实现接口:
packageapp.demo;
publicclass BasicService implements BasicAPI {
privateString _greeting = "Hello, world";
public void setGreeting(String greeting)
{
_greeting = greeting;
System.out.println("set greetingsuccess:"+_greeting);
}
public String hello()
{
return _greeting ;
}
public User getUser() {
return new User("prance", "meshow");
}
}
创建一个实现Serializable 的projo 类也可以是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 StringgetUserName() {
returnuserName;
}
public StringgetPassword() {
returnpassword;
}
}
接下来是配置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 服务器上去, 可以是Tomcat ,Rain 等等。
进入
结果如下:
Hello: Hello, world
Hello: snoopy
Hello: showme
说明服务器端已经编写成功。
创建客户端程序
创建一个名为HessianClient 的JAVAProject ,载入hessian.jar 包
创建与服务器端一样的接口,及基础类
public interface BasicAPI{
public void setGreeting(Stringgreeting);
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 StringgetUserName() {
returnuserName;
}
public StringgetPassword() {
returnpassword;
}
}
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";
HessianProxyFactoryfactory = new HessianProxyFactory();
BasicAPIbasic = (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是Apache项目下的一个轻量级的RPC(Remote Procedure Call,远程过程调用)框架,它提供了一种高效的二进制协议,用于在网络之间传递Java对象。下面我们将详细介绍Hessian的实现原理以及如何在实际开发中运用...
Java Hessian远程调用是一种高效的、轻量级的RPC(Remote Procedure Call)解决方案,它允许Java应用程序通过网络进行跨语言的通信。Hessian是BEA Systems开发的一种二进制Web服务协议,它提供了序列化和远程方法...
Spring会自动创建代理对象,使得客户端可以通过这个代理对象调用远程服务的方法,就像调用本地对象一样。 3. **使用源码分析**: Hessian库提供了`HessianProxyFactoryBean`和`HessianServiceExporter`这两个关键...
Hessian远程调用框架是基于Java的轻量级RPC(Remote Procedure Call)解决方案,它允许开发者在分布式系统中实现高效、便捷的跨网络对象方法调用。本教程将引导你入门Hessian,通过一个简单的JAVA demo来理解其工作...
本教程将通过一个入门Demo来介绍如何使用Hessian进行远程接口调用。 首先,让我们理解Hessian的优势。与XML-RPC相比,Hessian使用二进制编码,因此在网络传输时占用的带宽更少,解析速度更快。此外,Hessian支持...
本教程将详细介绍"Hessian远程调用RPC最简单demo",包括服务器端服务发布和客户端服务调用的实现,以及所需资源。 首先,我们来看一下`hessian-4.0.7.jar`这个文件。这是Hessian库的核心组件,包含了实现Hessian...
Hessian支持序列化Java对象,使得远程调用如同本地调用一样便捷,极大地提高了开发效率。 一、Hessian框架的核心特性: 1. **二进制协议**:Hessian采用高效的二进制协议,与基于文本的HTTP协议相比,数据传输量更...
Hessian是一种基于二进制协议的轻量级远程方法调用(RMI)技术,由Caucho Technology开发。它的设计目标是提供一种高效、简洁的方式来传输Java对象和方法调用,使得分布式应用间的通信变得更加简单和快速。在本文中,...
总的来说,Spring整合Hessian访问远程服务是Java开发中的常见实践,它利用Spring的灵活性和Hessian的高效性,简化了服务的发布和调用流程,是构建分布式系统时的一个有效工具。通过学习和掌握这一技术,开发者可以更...
远程调用服务框架是软件开发中的一个重要组成部分,它允许不同系统、不同网络环境下的应用程序之间进行通信,实现功能的解耦合和分布式系统的构建。在Java世界中,Spring框架提供了强大的支持来实现这一目标。本篇...
《Hessian远程调用技术详解》 在分布式系统中,远程调用是常见的通信方式,它使得服务可以跨越网络边界,实现组件之间的交互。Hessian,由Caucho公司开发,是一种高效的二进制RPC(Remote Procedure Call)协议,常...
3. 透明性:对于客户端来说,调用远程服务就像调用本地对象一样,降低了复杂性。 总结,这个压缩包文件提供了一个完整的Hessian学习路径,包括基础的Hessian服务创建和更高级的与Spring框架的整合。通过实践这些...
Hessian是一种二进制Web服务协议,它提供了一种高效的RPC(远程过程调用)机制,使得服务器和客户端之间能够进行快速、简单的通信。在Java环境中,Hessian库被广泛用于构建分布式应用,因为它可以将Java对象序列化为...
Hessian是一种二进制的远程过程调用(RPC)协议,由BEA Systems(现为Oracle的一部分)开发,它允许不同语言之间进行高效、简洁的数据交换。 1. **Hessian协议**:Hessian是一种轻量级的序列化和RPC协议,它的主要...
6. **调用远程方法**:通过代理对象调用服务端的方法,就像调用本地方法一样。 **标签中的“hessian”和“java”**表明这是关于Java平台上的Hessian技术。Hessian是跨语言的,但在这个例子中,我们专注于Java环境下...
远程调用是指应用程序的不同组件或服务之间,通过网络进行通信的一种方式。Spring支持多种远程调用协议,如RMI(Remote Method Invocation)、Hessian、 Burlap以及HTTP Invoker等。这些协议允许我们跨越网络边界,...
- 客户端可以通过Spring自动注入的方式获取到Hessian服务代理对象,然后像调用本地方法一样调用远程服务。 三、HessianServer项目 在压缩包中的`HessianServer`项目,包含了服务端的实现。在这个项目中,你会看到...
Hessian的目标是提供高效、简单的方式进行跨语言、跨平台的服务调用,尤其适合Java和Adobe Flex之间的通信。在本篇中,我们将深入探讨Hessian调用的相关知识点。 首先,我们要理解Hessian调用的核心概念。Hessian...
总的来说,Hessian案列代码展示了如何使用Hessian进行远程方法调用。通过对服务端的设置、客户端的调用以及处理序列化和反序列化,我们可以实现高效、便捷的分布式系统通信。这个案例对于理解Hessian的工作原理及其...