Hessian知识学习总结——Hessian的helloworld

Posted wodediqizhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hessian知识学习总结——Hessian的helloworld相关的知识,希望对你有一定的参考价值。

一、下载Hessian

        可在hessian官网http://hessian.caucho.com/ 或者http://download.csdn.net/detail/wodediqizhang/9543682下载jar包。
此处用的是hessian-4.0.3.jar

二、 搭建Hessian的Server

        2.1.新建一个web项目,HessianTest,如图1。将hessian-4.0.3.jar放在lib下。


        2.2.提供服务接口HessianService,代码如下:

package com.cn.wjztr.service;

import com.cn.wjztr.model.HelloWorld;
/**
 * 
 * 
 * 类名称:HessianService
 * 类描述: 定义对外提供服务的接口
 * 创建人:wodediqizhang@163.com
 * 修改时间:2016-6-7 下午4:39:33
 * Modification History:
 * =============================================================================
 *   Author         Date          Description
 *   ------------ ---------- ---------------------------------------------------
 *   ghb<span style="font-family: Arial, Helvetica, sans-serif;">                         2016-6-7        创建文档 </span>
 * =============================================================================
 * @version 1.0.0
 *
 */
public interface HessianService 

	public HelloWorld sayHelloWorld();


        2.3.HessianService接口要使用HelloWorld对象,HelloWorld代码如下:

package com.cn.wjztr.model;

import java.io.Serializable;

public class HelloWorld implements Serializable

	/**
	 * serialVersionUID:TODO(用一句话描述这个变量表示什么)
	 *
	 * @since 1.0.0
	 */
	private static final long serialVersionUID = 2303638650074878501L;
	/**
	 * 名字
	 */
	private String name;
	public HelloWorld() 
		
	
	public HelloWorld(String name) 
		 this.name = name;
	
	
	public String getName() 
		return name;
	
	public void setName(String name) 
		this.name = name;
	



        2.4.实现HessianService接口,实现类为HessianServiceImpl:

package com.cn.wjztr.service.impl;

import com.cn.wjztr.model.HelloWorld;
import com.cn.wjztr.service.HessianService;
/**
 * 
 * 
 * 类名称:HessianServiceImpl
 * 类描述:对外提供服务的接口的实现
 * 创建人:<span style="font-family: Arial, Helvetica, sans-serif;">wodediqizhang@163.com</span>
 * 修改时间:2016-6-7 下午4:47:40
 * Modification History:
 * =============================================================================
 *   Author         Date          Description
 *   ------------ ---------- ---------------------------------------------------
 *   ghb           2016-6-7        创建文档 
 * =============================================================================
 * @version 1.0.0
 *
 */
public class HessianServiceImpl implements HessianService 
	
	@Override
	public HelloWorld sayHelloWorld() 
		// TODO Auto-generated method stub
		return new HelloWorld("hello,World");
	



        2.5.配置web.xml,添加对HessianServlet的配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
	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_3_0.xsd">
  <display-name></display-name>	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
   <servlet>
        <!-- 配置 HessianServlet,Servlet的命名任意-->
        <servlet-name>ServiceServlet</servlet-name>
        <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
        
        <!-- 配置接口的具体实现类 ,param-name命名任意-->
        <init-param>
            <param-name>service-class</param-name>
            <param-value>com.cn.wjztr.service.impl.HessianServiceImpl</param-value>
        </init-param>
    </servlet>
    <!-- 映射 HessianServlet的访问URL地址-->
    <servlet-mapping>
        <servlet-name>ServiceServlet</servlet-name>
        <url-pattern>/ServiceServlet</url-pattern>
    </servlet-mapping>
  
</web-app>

        此时,Hessian Server的配置已经完成了,接下来将应用部署在tomcat并启动。访问链接http://127.0.0.1:8081/HessianTest/ServiceServlet,得到信息如下:


  

三、实现Hessian的client

        调用Hessian的客户端,创建HessianTestClient类,代码如下:

package com.cn.wjztr.controller;

import java.net.MalformedURLException;

import com.caucho.hessian.client.HessianProxyFactory;
import com.cn.wjztr.model.HelloWorld;
import com.cn.wjztr.service.HessianService;


/**
 * 
 * 
 * 类名称:HessianTestClient
 * 类描述:
 * 创建人:wodediqizhang@163.com
 * 修改时间:2016-6-7 下午4:57:11
 * Modification History:
 * =============================================================================
 *   Author         Date          Description
 *   ------------ ---------- ---------------------------------------------------
 *   ghb            2016-6-20        创建文档 
 * =============================================================================
 * @version 1.0.0
 *
 */
public class HessianTestClient 
	public static void main(String[] args) 
	//在服务器端的web.xml文件中配置的HessianServlet映射的访问URL地址
	String url = "http://127.0.0.1:8081/HessianTest/ServiceServlet"; 
	HessianProxyFactory factory = new HessianProxyFactory(); 
	HessianService service = null;
	try service = (HessianService) factory.create(HessianService.class, url); 
	catch (MalformedURLException e) 
		// TODO Auto-generated catch block
		e.printStackTrace();
	//创建IService接口的实例对象 
	HelloWorld helloWorld = service.sayHelloWorld();
	//调用Hessian服务器端的ServiceImpl类中的getUser方法来获取一个User对象 
	System.out.println(helloWorld.getName());
	



<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">        运行这个类,会得到“hello,World”信息:</span>



后记:这篇博是借鉴了孤傲苍狼(http://www.cnblogs.com/xdp-gacl/p/3897534.html)这篇文章的内容实现的,不过他是将server和client分开,并将server的接口打了jar包给client,在client项目里面引用jar包里的接口实现对server的调用。这里我觉得理解原理就好,所以就我在这里就写一起了。

再后记:上个后记都说了借鉴,那这篇文章还设为转载吧。就这样。


以上是关于Hessian知识学习总结——Hessian的helloworld的主要内容,如果未能解决你的问题,请参考以下文章

Hessian知识学习总结——Spring + Hessian + Spring MVC

Hessian知识学习总结——Spring + Hessian + Spring MVC

Hessian知识学习总结——基础知识

HessianSpring整合Hessian

HessianSpring整合Hessian

机器学习中的矩阵求导Jacobian矩阵和Hessian矩阵