Hessian

简介:


Hessian是远程调用的一种技术,和WebService类似,但不同的是较WebService而言,它更轻量级,更简单,更快速。

关于Hessian更详细全面的介绍可以查看http://hessian.caucho.com/

下面就用一个例子来简单的使用Hessian。

一、创建服务端:

1、在Eclipse建立一个Maven webapp项目hessian,如图:

wKiom1VAbAvRLI8gAAHbQ2utv3c544.jpg

2、在项目中添加Hessian的依赖pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>hessian</groupId>

  <artifactId>com.xt.hessian</artifactId>

  <packaging>war</packaging>

  <version>0.0.1-SNAPSHOT</version>

  <name>com.xt.hessian Maven Webapp</name>

  <url>http://maven.apache.org</url>

  <dependencies>

     <dependency>

         <groupId>junit</groupId>

         <artifactId>junit</artifactId>

         <version>4.8.2</version>

     </dependency>

    <dependency>

<groupId>com.caucho</groupId>

<artifactId>hessian</artifactId>

<version>4.0.7</version>

     </dependency>

    <dependency>

    <groupId>javax.servlet</groupId>

    <artifactId>servlet-api</artifactId>

    <version>2.5</version>

    </dependency>

  </dependencies>

  <build>

    <finalName>com.xt.hessian</finalName>

  </build>

</project>

3、添加一个提供Hessian服务的接口和实现类:

package com.xt.hessian;

/**

     * @ClassName: HessianService

     * @Description: Hessian服务接口

     * @date 2015-04-29 下午10:41:26

     * 

     */

public interface HessianService {

public String sayHello(String name);

}




package com.xt.hessian.impl;

import com.caucho.hessian.server.HessianServlet;

import com.xt.hessian.HessianService;

public class HessianServiceImpl extends HessianServlet implements HessianService   {


/**

* @Description: Hessian服务接口实现类

*/

private static final long serialVersionUID = 1L;


@Override

    public String sayHello(String name) {

       return "hello " + name;

    }

}


4、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"> 


  <display-name>Archetypes Created Web Application</display-name>

  <servlet>

      <servlet-name>service</servlet-name>

      <servlet-class>com.xt.hessian.impl.HessianServiceImpl</servlet-class>

   </servlet>

  <servlet-mapping>

     <servlet-name>service</servlet-name>

     <url-pattern>/service</url-pattern>

  </servlet-mapping>

</web-app>

二、创建客户端:创建测试类:


package hessian;


import java.net.MalformedURLException;


import org.junit.Test;


import com.caucho.hessian.client.HessianProxyFactory;

import com.xt.hessian.HessianService;


public class HessianServiceTest {

private final static String SERVICE_URL = "http://localhost:8088/hessian/service";

 

@Test

public void testSayHello() {

HessianProxyFactory proxyFactory = new HessianProxyFactory();

try {

HessianService hessianService = (HessianService)            proxyFactory.create(HessianService.class, SERVICE_URL);

               System.out.println(hessianService.sayHello("hessian!!!"));

            } catch (MalformedURLException e) {

               e.printStackTrace();

            }

 }

}


运行结果:

wKioL1VAb1jDb-8CAAC5GsupfMk256.jpg

hello hessian!!!


三、注意:如果服务端不启动,会报如下错误:

wKioL1VAlc_izqqqAAdW_B7rEvo686.jpg


















本文转自lzf0530377451CTO博客,原文链接:http://blog.51cto.com/8757576/1640280 ,如需转载请自行联系原作者





相关文章
|
Java 应用服务中间件 Maven
Maven - 两种Tomcat插件的配置
Maven - 两种Tomcat插件的配置
1145 0
|
Java
JDK1.8源码下载及获取、导入IDEA阅读、配置JDK源码
本文是博主学习JDK源码的记录,希望对大家有所帮助。
2700 0
JDK1.8源码下载及获取、导入IDEA阅读、配置JDK源码
|
6月前
|
算法 Java 微服务
2025 年 Java 面试宝典社招春招秋招实操全方位攻略
2025年Java面试宝典涵盖核心技术及最新趋势,分为四大板块:1. Java基础:深入数据类型、多态等特性,结合学生信息管理等实例;2. JVM核心:解析内存模型与GC算法,附多线程转账等场景应用;3. 高并发方案:详解synchronized与线程池配置,提供Web服务器优化案例;4. Spring生态:剖析IoC/AOP原理,演示微服务架构实现。特别新增Java 17+特性实操,包括Record类、密封接口等语法糖,整合Spring Boot 3、响应式编程及云原生技术,通过订单状态机、API网关配置。
365 1
|
6月前
|
SQL JSON Java
|
存储 Java Spring
Spring之国际化:i18n
【1月更文挑战第17天】 一、i18n概述 二、Java国际化 三、Spring6国际化 1、MessageSource接口 2、使用Spring6国际化
428 1
|
传感器 存储 运维
智能物联网:LoRaWAN技术在低功耗广域网中的应用
【10月更文挑战第26天】本文详细介绍了LoRaWAN技术的基本原理、应用场景及实际应用示例。LoRaWAN是一种低功耗、长距离的网络层协议,适用于智能城市、农业、工业监控等领域。文章通过示例代码展示了如何使用LoRaWAN传输温湿度数据,并强调了其在物联网中的重要性和广阔前景。
506 6
|
XML 安全 Java
Spring Boot中使用MapStruct进行对象映射
本文介绍如何在Spring Boot项目中使用MapStruct进行对象映射,探讨其性能高效、类型安全及易于集成等优势,并详细说明添加MapStruct依赖的步骤。
499 0
|
监控 Dubbo 搜索推荐
No application config found or it‘s not a valid config! Please add <dubbo:application name=“...“ />
No application config found or it‘s not a valid config! Please add <dubbo:application name=“...“ />
1725 1
|
XML Java 数据格式
java使用Document类解析xml并创建子标签节点
java使用Document类解析xml并创建子标签节点
|
XML Java 数据库连接
SpringBoot(九)之整合mybatis
mybatis-spring-boot-starter 可以简化在 Spring Boot 项目中集成 MyBatis 的过程,并且事务管理也会自动配置。在 Spring Boot 2.x 及以上版本中,只需添加相应的依赖和配置,即可启用事务管理。
366 0