学习Hessian-1

创建Hessian服务接口

1、创建一个maven项目

2、在pom中加入相关依赖

3、创建Service接口

package org.didinem.service;

/**
  * Created by didinem on 16-5-21.
  */
public interface IHessianService {
    public String serviceMethod(String name);
}

4、maven install

搭建Hessian服务端

Hessian官方对于Hessian服务的说明

The Hessian library makes it possible to write services by extending HessianServlet.
Any public method is treated as a service method. So adding new methods is as easy as writing a normal Java class.
Because the service is implemented as a Servlet, it can use all the familiar servlet data in the ServletContext, just like a normal servlet.

简单来说,如果自己想要实现一个Hessian的服务,只要继承HessianServlet,然后这个类所有的public方法就可以当作是Hessian服务的方法了。(那能不能排除指定的public method呢?)

1.创建maven web项目

2.引入相关依赖

    <dependency>
        <groupId>com.caucho</groupId>
        <artifactId>hessian</artifactId>
        <version>4.0.7</version>
    </dependency>
    <dependency>
        <groupId>org.didinem</groupId>
        <artifactId>hessian-api</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>

3、实现Hessian服务

/**
  * Created by didinem on 16-5-21.
  */
public class HessianServiceImpl extends HessianServlet implements IHessianService {
    @Override
    public String serviceMethod(String name) {
        return "Hello " + name;
    }
}

4、配置Hessian服务

Since the HessianServlet is a standard servlet, it can also be configured in the standard servlet configuration.

配置Hessian服务就是配置Servlet

<servlet>
    <servlet-name>hessianService</servlet-name>
    <servlet-class>HessianServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>hessianService</servlet-name>
    <url-pattern>/hessianService</url-pattern>
</servlet-mapping>

5、配置并启动tomcat




这里的hessian-demo-server:war和hessian-demo-server:war exploded的区别猜测如下(待验证):
前者是把web工程打成一个war包部署到tomcat,而后者只是把web工程的目录拷贝到了tomcat的webapps下。

启动tomcat,访问地址http://localhost:8080/hessian-demo-server/hessianService
当页面出现如下图类似内容时,代表服务至少部署成功,能不能用就再说了

搭建Hessian客户端来测试

1、创建maven项目
2、引入相关依赖

    <dependency>
        <groupId>com.caucho</groupId>
        <artifactId>hessian</artifactId>
        <version>4.0.7</version>
    </dependency>
    <dependency>
        <groupId>org.didinem</groupId>
        <artifactId>hessian-demo-api</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

3、编写客户端
Hessian官方对于客户端的说明

Using a Hessian service from a Java client is like calling a method. The HessianProxyFactory creates proxies which act like normal Java objects, with possibility that the method might throw a protocol exception if the remote connection fails. Using HessianProxyFactory requires JDK 1.3.

Each service will have a normal Java interface describing the service. The trivial hello, world example just returns a string. Because the Hessian services support Java serialization, any Java type can be used.

简单来说通过HessianProxyFactory获得服务的代理,然后像调用普通方法一样调用Hessian服务。
官方给出的样例:

package example;

import com.caucho.hessian.client.HessianProxyFactory;

public class BasicClient {
  public static void main(String []args) throws Exception {
    String url = "http://www.caucho.com/hessian/test/basic";
    HessianProxyFactory factory = new HessianProxyFactory();
    Basic basic = (Basic) factory.create(Basic.class, url);
    System.out.println("Hello: " + basic.hello());
  }
}

那这样就很简单了

package org.didinem.client;

import com.caucho.hessian.client.HessianProxyFactory;
import org.didinem.service.IHessianService;

/**
 * Created by didinem on 16-5-22.
 */
public class HessianClient {
    public static void main(String[] args) {
        String url = "http://localhost:8080/hessian-demo-server/hessianService";

        HessianProxyFactory factory = new HessianProxyFactory();
        IHessianService hessianService = (IHessianService) factory.create(IHessianService.class, url);

        System.out.println(hessianService.serviceMethod("hehe"));
    }
}

执行输出结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值