hessian简单示例

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/soonfly/article/details/76101664

创建一个对外接口

public interface Basic {
    String hello(String name);

    String say(String msg);

    int sum(int a,int b);
}

实现该接口并继承HessianServlet

public class BasicService extends HessianServlet implements Basic {

    @Override
    public String hello(String name) {
        return "Hello " + name;
    }

    @Override
    public int sum(int a, int b) {
        return a + b;
    }

    @Override
    public String say(String msg) {
        return "Say:" + msg;
    }
}

配置web.xml

<servlet>
  <servlet-name>hello</servlet-name>
  <servlet-class>com.abel533.hessian.BasicService</servlet-class>
</servlet>

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

启动服务器

客户端代码

public class Client {
    interface Hello {
        String hello(Object name);
    }

    interface SumSay {
        String say(String msg);

        int sum(int a, int b);

        int hi(String hi);
    }

    public static void main(String[] args) throws MalformedURLException {
        //TODO 根据实际地址修改
        String url = "http://localhost:8090/hello";
        HessianProxyFactory factory = new HessianProxyFactory();
        Hello basic = (Hello) factory.create(Hello.class, url);
        System.out.println(basic.hello(123));

        SumSay sumSay = (SumSay) factory.create(SumSay.class, url);
        System.out.println(sumSay.say("你好!"));

        System.out.println("10+20=" + sumSay.sum(10, 20));
    }
}

在客户端中创建了两个接口,接口名和最上面Basic中的部分接口是一样的。
经过简单的测试发现,只要方法名一致,并且参数个数一致,就可以成功调用。

猜你喜欢

转载自blog.csdn.net/soonfly/article/details/76101664
今日推荐