`
yznxing
  • 浏览: 370481 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java学习——hessian篇

    博客分类:
  • java
阅读更多

在可选的java远程通讯中,比较有名的就是hessian了。根据我的了解应该是其性能是最好的。RMI已经逐渐被抛弃了。web service在性能上比hessian差很多,毕竟是以XML为媒介传播的。但是可以基于多语言的平台。hessian应该说算是面向java的远程通 讯框架了。
下面简单的实现hessian实现RPC的demo。
         hessian是基于http协议的,发布服务需要依靠servlet容器来发布。因此其服务端就是一个web服务。先简单的实现业务接口和实现类,服务端的。

接口:HelloService.java

public interface HelloService{    
    // Hessian接口测试
    public String test();
}

业务实现:HelloServiceImpl.java

public class HelloServiceImpl implements HelloService{
    public String test(){
        return "This is a hessian test!";
     }
 }
 

然后来发布服务,随便一个web的project,在其web.xml中来发布我们的服务servlet。
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">
<servlet>
<!-- 配置Servlet名,后面根据该名完成远程服务映射 -->
<servlet-name>helloService</servlet-name>
<!-- Hessian远程服务需要HessianServlet暴露 -->
<servlet-class>
com.caucho.hessian.server.HessianServlet
</servlet-class>
<!--  使用init-param配置服务的实现类 -->
<init-param>
<param-name>home-class</param-name>
<param-value>
com.taylor.service.HelloServiceImpl
</param-value>
</init-param>
<init-param>
<param-name>home-api</param-name>
<param-value>com.taylor.service.HelloService</param-value>
</init-param>
<!-- 随应用启动而启动 -->
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 映射Servlet的url,该Servlet的url就是Hessian服务名 -->
<servlet-mapping>
<servlet-name>helloService</servlet-name>
<url-pattern>/service/helloService.service</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
 

其中将对应的接口和实现类都配置上,用HessianServlet 来进行实现。
这样就算是成功发布了hessian的服务了。

客户端:
更简单,采用hessian提供的客户端proxy即可。

public class Test {
    public static  void main(String[] argv) throws Exception { 
        // Hessian服务的url
     String url = "http://localhost:8080/standalone-webconsole/service/helloService.service";
       // 创建HessianProxyFactory实例
     HessianProxyFactory factory = new  HessianProxyFactory();
       // 获得Hessian服务的远程引用
     Hello hello = (Hello) factory.create(Hello.class, url);
       // 调用远程服务。
     System.out.println("下面调用Hessian服务: " + hello.testHello());
    }
}
 

通过hessian的代理工厂HessianProxyFactory来得到我们的代理远程服务类,然后进行调用。
下一篇,准备自己写个servlet来实现类似的hessian功能。

0
1
分享到:
评论

相关推荐

    hessian学习基础篇——序列化和反序列化

    通过学习Hessian,我们可以更有效地处理数据传输,提高应用性能。 首先,让我们理解什么是序列化。序列化是将对象的状态转换为可存储或可传输的形式的过程。在Java中,如果一个类实现了Serializable接口,那么该类...

    java面试——Dubbo面试专题.zip

    Java面试中的Dubbo专题主要涉及分布式服务框架Dubbo的核心概念、设计原理以及在实际应用中的问题与解决方案。Dubbo是阿里巴巴开源的一款高性能、轻量级的Java RPC框架,它提供了服务治理、负载均衡、容错处理等关键...

    WebService另一种轻量级实现—Hessian 学习笔记.rar

    **WebService的轻量级实现——Hessian学习笔记** 在IT行业中,WebService作为一种常见的跨平台、跨语言的通信机制,被广泛应用于系统间的交互。然而,传统的SOAP(Simple Object Access Protocol)协议实现的...

    使用hessian进行服务器-客户端通讯

    在这个案例中,提供的"压缩包子文件的文件名称列表"——"hessian使用案例",很可能包含了服务器端和客户端的代码示例。这些示例可能包括了服务器端的服务接口和实现、web.xml配置、客户端的HessianProxyFactory使用...

    hessian-4.0.7.jar + src

    2. 学习如何在Java项目中配置和使用Hessian客户端和服务端。 3. 掌握如何通过Hessian源码调试和优化性能。 4. 熟悉Hessian与其他通信协议(如HTTP、SOAP)的对比,以便根据项目需求选择最佳方案。 总结,Hessian ...

    hessian轻量级 rpc实现

    通过学习和研究这个示例项目,开发者可以更好地理解Hessian的工作流程,以及如何在自己的项目中部署和使用Hessian RPC。 总结,Hessian作为一种轻量级的RPC解决方案,以其高效、简单和易于集成的特性在分布式系统中...

    2021Java字节跳动面试题——面向字节_Dubbo(上).pdf

    - **特点**:采用JDK标准的RMI协议实现,传输参数和返回参数对象需实现Serializable接口,使用Java标准序列化机制,使用阻塞式短连接。 - **传输协议**:TCP - **序列化方式**:Java标准序列化 - **应用场景**:适用...

    provider——consumer 程序源码.zip

    【标题】"provider——consumer 程序源码"指的是一个使用Java开发的分布式服务框架Dubbo中的核心组件——提供者(Provider)和消费者(Consumer)的源代码。Dubbo是阿里巴巴开源的一个高性能、轻量级的服务治理框架...

    java 远程调用工具

    本文将深入探讨如何利用Java技术进行远程调用,特别是针对WebService和RESTful接口的调用,以及一个常用的工具——SoapUI。 首先,让我们了解什么是远程调用。远程调用(Remote Procedure Call,RPC)是一种在...

    Spring 实现远程访问详解——rmi

    1. 远程调用RMI(Remote Method Invocation): 通过使用 RmiProxyFactoryBean 和 RmiServiceExporter,并且,Spring支持两个传统的RMI(使用 java.rmi.Remote接口和java.rmi.RemoteException)和通过RMI调用器实现的...

    1000道 互联网大厂Java工程师面试题.pdf

    6. 序列化框架:默认使用Hessian序列化,了解其他如Java自带序列化等。 7. 服务失效踢出原理:服务健康检查失败后,服务提供者会从注册中心中移除服务实例。 8. 服务上线不影响旧版本:Dubbo支持服务降级和分组等...

    阿里大牛眼中——Dubbo 的过去、现在以及未来

    标题为《阿里大牛眼中——Dubbo 的过去、现在以及未来》,描述提到了阿里巴巴技术专家马昕曦(小马哥)将会分享有关Dubbo的历史、现状以及未来展望。其中提到了分布式系统和微服务架构,特别强调了对于Java程序员的...

    JAVA工具factroy.rar

    "JAVA工具factory.rar"这个压缩包很可能包含了与Java开发相关的工具、库或框架,而"springcloud dubbo"标签则指向了两个重要的微服务技术——Spring Cloud和Dubbo。 Spring Cloud是基于Spring Boot构建的一套完整的...

    Spring——jar详解

    Spring框架是Java应用程序开发中的一个核心库,它提供了一种模块化和简化的方式来构建和管理应用程序的组件。Spring框架的核心特点在于它的Inversion of Control (IoC)和Dependency Injection (DI)原则,允许开发者...

    基于Java的实例源码-高性能RPC框架 nfs-rpc.zip

    本实例源码是基于Java实现的高性能RPC框架——nfs-rpc,专为分布式系统设计,以提高服务之间的通信效率和可靠性。以下是关于这个框架的一些关键知识点: 1. **RPC基础**:RPC的核心思想是调用远程服务就像调用本地...

    dubbo——rpc简介1

    Dubbo作为一款著名的Java RPC框架,广泛应用在分布式系统中,简化了服务间的通信。 RPC的核心思想在于提供透明的远程调用体验,就像调用本地方法一样简单。在RPC框架中,通常包含以下几个关键组件: 1. **客户端...

    jinrongjuClient

    本文将深入探讨如何将Spring与Hessian整合,以创建一个高效的远程服务客户端——"jinrongjuClient"。 首先,理解Hessian的核心特性至关重要。Hessian的主要优点在于其高效性和简洁性,它能够将Java对象序列化为二...

    基于java的高性能RPC框架 nfs-rpc.zip

    本教程将深入探讨基于Java实现的高性能RPC框架——nfs-rpc,它旨在提供高效、易用且可扩展的解决方案。 一、RPC框架的核心概念 1. 客户端(Client):发起RPC调用的一方,通常在本地系统上运行,需要调用远程服务...

    Java 序列化的秘密(高清PDF中文版)

    除了Java标准库提供的序列化机制外,还有其他流行的序列化框架,如Hessian和Apache Mina。这些框架提供了更高效的序列化和反序列化机制,适用于高性能网络通信场景。 #### 工作中需要注意的点 在实际开发中,使用...

Global site tag (gtag.js) - Google Analytics