一直对java远程通信模模糊糊,对我而言貌似太神秘了.其原因在于一直没有机会使用!(怪我懒,平时自己也不搞...
)最近公司项目用到了,就看了看,下了jar包自己做了个小demo,供大家入门,实在是“很简单”!以下是参考代码:
在我的MyEclipse中建了两个工程:hessianClient和hessianService,一个客户端,一个做服务端,功能即:客户端远程调用服务端方法返回entity实例.
实体类如下(切记要实现序列化,客户端与服务器共享实体类):
package org.galo.entity;
import java.io.Serializable;
public class User implements Serializable{
private static final long serialVersionUID = 1L;
private String username;
private String password;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
客户端与服务端提供一样的接口,接口定义如下:
package org.galo.service;
import org.galo.entity.User;
public interface LoginService {
public User loginValid();
}
服务器端的实现方法:
package org.galo.service.impl;
import org.galo.entity.User;
import org.galo.service.LoginService;
public class LoginServiceImpl implements LoginService{
public User loginValid() {
User user = new User();
user.setUsername("admin");
user.setPassword("galo");
return user;
}
}
接下来配置服务器端的web.xml,配置对外服务以供客户端调用:
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<init-param>
<param-name>service-class</param-name>
<param-value>org.galo.service.impl.LoginServiceImpl</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
最后一步即客户端调用服务端方法:
package org.galo.test;
import java.net.MalformedURLException;
import org.galo.entity.User;
import org.galo.service.LoginService;
import com.caucho.hessian.client.HessianProxyFactory;
public class HessianTest {
public static void main(String[] args) {
String url = "http://127.0.0.1:8080/hessianService/login";
HessianProxyFactory factory = new HessianProxyFactory();
try {
LoginService service = (LoginService) factory.create(LoginService.class, url);
User user = service.loginValid();
System.out.println(user.getUsername());
System.out.println(user.getPassword());
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
发布客户端与服务端至tomcat,启动服务器,运行测试方法...嘿嘿!
之前我测试的时候报了一个异常,连接错误之类的,原因在于我的url没带端口.
附:hessian.jar包
补充一下:hessian采用的二进制通信协议,同类的java远程通信技术还有:Rmi,httpInvoker,WS
分享到:
相关推荐
**Hessian:深入理解与应用** Hessian是一种二进制Web服务协议,它由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method Invocation,RMI)服务。Hessian的目标是简化分布式系统...
Hessian是一种高效的二进制序列化协议,常用于实现轻量级的远程过程调用(RPC)。这个案例涉及到了Hessian在Java和Python之间的跨语言通信。以下是对Hessian技术及其应用的详细解释: 1. **Hessian简介**:Hessian...
这个压缩包包含了Hessian的多个版本,分别是Hessian3.1.6、Hessian3.2.1以及Hessian4.0.7。每个版本都有其特定的功能改进和优化,了解这些版本的区别和适用场景对于开发者来说至关重要。 Hessian3.1.6是Hessian的一...
Hessian是一种二进制Web服务协议,由Caucho Technology公司开发,主要用于提供轻量级、高效的远程方法调用(Remote Method Invocation, RMI)机制。它结合了HTTP协议的可扩展性和Java序列化机制的易用性,使得在...
《Hessian应用详解》 Hessian,一种轻量级的二进制协议,因其高效、简单的特点,在分布式服务中被广泛应用。它允许开发者在HTTP上透明地调用远程方法,就像是本地方法调用一样,极大地提高了开发效率和系统性能。...
在图像处理领域,多尺度Hessian滤波器是一种高级的图像增强技术,它主要用于检测图像中的线性结构,特别是对于微弱或者噪声较大的图像特征有很好的识别能力。这个技术是基于数学形态学的Hessian矩阵理论,由V.S. ...
在IT领域,尤其是在医学图像分析中,Hessian矩阵是一个重要的数学工具,用于图像特征检测,特别是在血管分割的应用中。本文将深入探讨标题和描述中提到的"基于Hessian矩阵增强的心血管分割"这一主题。 Hessian矩阵...
在IT行业中,Hessian是一种基于二进制协议的RPC(远程过程调用)框架,它使得客户端和服务端之间能够高效地进行数据交换。HessianServer指的是实现Hessian协议的服务端程序,通常用于构建分布式系统,使得不同的应用...
- 在实际开发中,我们可能会需要编写一些辅助工具类来处理Hessian的相关操作,例如Hessian2Input和Hessian2Output,它们用于读写Hessian序列化的二进制流。 6. **安全性与优化**: - 虽然Hessian协议效率高,但其...
SpringMVC 和 Hessian 是两种在 Java 开发中常见的技术,它们在构建分布式系统时扮演着重要角色。SpringMVC 是 Spring 框架的一部分,主要用于构建 Web 应用的 MVC(模型-视图-控制器)架构。而 Hessian 是一种轻量...
赠送jar包:hessian-4.0.63.jar; 赠送原API文档:hessian-4.0.63-javadoc.jar; 赠送源代码:hessian-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
在Spring框架中,Hessian是一种轻量级的远程方法调用(RPC)协议,它能够实现Java对象到字节流的序列化,从而使得服务端的对象可以在客户端直接调用,仿佛对象就在本地一样。Hessian提供了高效的二进制RPC协议,使得...
Hessian是一种二进制协议,它被设计用于提高远程调用的效率,特别是在Java和C++之间进行跨语言通信时。Hessian的目标是提供一种快速、简洁的数据序列化和远程方法调用(RPC)机制。在这个简单的demo中,我们将探讨...
Hessian的设计目标是为了提供高效、简单的远程调用方式,使得客户端能够像调用本地方法一样调用远程服务。 **独立使用Hessian** 在不依赖任何框架的情况下,使用Hessian的步骤如下: 1. **添加依赖**:首先,...
在这个“hessian服务端 客户端 可运行”的压缩包文件中,很可能包含了一个完整的示例,让我们来详细探讨Hessian在服务端和客户端的实现及其重要性。 首先,我们来理解一下Hessian服务端。在Java中,Hessian服务端...
Hessian 协议格式 Hessian 协议是一种轻量级的 remoting on http 工具,使用简单的方法提供了 RMI 的功能。采用的是二进制 RPC 协议,所以它很适合于发送二进制数据。Hessian 主要用作面向对象的消息通信。 ...
在IT行业中,尤其是在移动开发领域,Hessian是一种广泛使用的二进制协议,它允许远程对象调用(Remote Object Invocation)。本知识点主要关注的是在Android平台上,如何使用Hessian进行异步请求访问,以便提高应用...
Hessian jar包通常包含了实现Hessian协议所需的类库,使得开发者能够在Java应用程序中使用Hessian进行服务调用。 在本例中,提供的"Hessian的jar包.zip"包含了一个名为"hessian的4.0.33.jar"的文件,这是Hessian的...
在这个案例中,我们关注的是Hessian的版本4.0.37,即"hessian4.0.37.jar"。 Hessian4.0.37是Hessian协议的一个稳定版本,提供了对Java应用的支持,使得远程方法调用变得更加简单和快速。这个版本可能包含了一系列的...
《深入理解Hessian框架:以hessian-4.0.33.jar为例》 Hessian是一种高效的二进制RPC(Remote Procedure Call)协议,由Caucho Technology开发,旨在提供轻量级、高效的远程调用服务。在这个专题中,我们将以hessian...