`
wangle860102
  • 浏览: 45298 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

第一个Hessian应用

阅读更多

Hessian是一个简单的二进制的Web服务方案(其实我觉得它更多的是一种二进制对象传递方式),它只需要一个客户端接口和服务端程序就可以轻松实现程序的远程调用啦。
下面就以Hessian主页上的例子来show一下这种简单的RPC应用方案啦


1、在tomcat下创建一个应用test,在其下的WEB-INF/src目录下编写以下程序文件。

2、创建服务端程序文件example/BasicService.java,内容如下:
package example;

public class BasicService implements Basic {
   private String _greeting = "Hello, world";

   public void setGreeting(String greeting)
   {
     _greeting = greeting;
   }

   public String hello()
   {
     return _greeting;
   }
}

3、创建一个本地接口,example/Basic.java,内容如下:
package example;

public interface Basic {
    public String hello(); //与服务端的hello方法对应
}


4、创建客户端测试程序,example/BasicClient.java,内容如下:

package example;

import com.caucho.hessian.client.HessianProxyFactory;

public class BasicClient {
   public static void main(String []args)
     throws Exception
   {
     String url = "http://127.0.0.1:8080/test/hello";

     HessianProxyFactory factory = new HessianProxyFactory();
     Basic basic = (Basic) factory.create(Basic.class, url);

     System.out.println("Hello: " + basic.hello());
   }
}

5、修改WEB-INF下的web.xml文件,填充以下内容:

   <?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
     PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
   <servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
     <init-param>
       <param-name>home-class</param-name>
       <param-value>example.BasicService</param-value>
     </init-param>
     <init-param>
       <param-name>home-api</param-name>
       <param-value>example.Basic</param-value>
     </init-param>
   </servlet>

   <servlet-mapping>
     <url-pattern>/hello</url-pattern>
     <servlet-name>hello</servlet-name>
   </servlet-mapping>
</web-app>

6、启动tomcat后,运行一下BasicClient类

看一看,是不是输出以下的内容啦,如果有恭喜你,已经成功创建你的第一个RPC Hessian应用了。
> Hello: Hello, world

分享到:
评论

相关推荐

    非二次改进的Hessian PDF重加权,并应用于5.02 TeV的CMS dijet测量

    我们将演示在可以提供必要信息的情况下,如何在重新加权中考虑原始拟合的第一个非二次分量。 然后,我们将该方法应用于在5.02 TeV质子-质子(pp)和质子-铅(pPb)碰撞中dijet伪快速光谱的CMS测量。 测得的pp dijet...

    spring in action英文版

    第一部分 Spring基础  第1章 开始Spring之旅  1.1 为什么使用Spring  1.1.1 J2EE开发者的一天  1.1.2 Spring的承诺  1.2 Spring是什么  1.3 开始Spring之旅  1.4 理解反向控制  1.4.1 依赖...

    Dubbo分布式服务框架精讲-高级课程(云盘下载)

    为了解决这些问题,第一步,要将服务现在每天的调用量,响应时间,都统计出来,作为容量规划的参考指标。 其次,要可以动态调整权重,在线上,将某台机器的权重一直加大,并在加大的过程中记录响应时间的变化,直到...

    Spring in Action(第2版)中文版

    第一部分spring的核心 第1章开始spring之旅 1.1spring是什么 1.2开始spring之旅 1.3理解依赖注入 1.3.1依赖注入 1.3.2di应用 1.3.3企业级应用中的依赖注入 1.4应用aop 1.4.1aop介绍 1.4.2aop使用 1.5小结...

    Spring in Action(第二版 中文高清版).part1

    第一部分 Spring的核心 第1章 开始Spring之旅 1.1 Spring是什么 1.2 开始Spring之旅 1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP 1.4.1 AOP介绍 1.4.2 AOP...

    Spring in Action(第二版 中文高清版).part2

    第一部分 Spring的核心 第1章 开始Spring之旅 1.1 Spring是什么 1.2 开始Spring之旅 1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP 1.4.1 AOP介绍 1.4.2 AOP...

    JAVA上百实例源码以及开源项目

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    JAVA上百实例源码以及开源项目源代码

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    java开源包1

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)

    第一:介绍Dubbo背景大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡。(1)当服务越来越多时,服务URL配置管理变得非常...

    开源框架 Spring Gossip

    管理 Bean 从第一个 Spring 应用程式开始,逐步了解何谓依赖注入,以及如何使用 Spring 的容器功能来管理 Bean,了解 Bean 在 Spring 容器中的生命周期。 第一个 Spring 程式 BeanFactory、 ...

    java开源包11

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包2

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包3

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包6

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包5

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包10

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包4

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

Global site tag (gtag.js) - Google Analytics