spring与hessian整合例

spring与hessian的简单应用实现例:

开发环境:window7 64,jdk8,tomcat8,spring4.2.5,hessian4.0

开发语言:java

hessianServer端代码:

package org.server.hessian.study.implDef;

public interface Greet {
    public String sayHello();

    public String sayHelloToUser();

}
View Code
package org.server.hessian.study.impl;

import org.server.hessian.study.business.User;
import org.server.hessian.study.implDef.Greet;

public class Hello implements Greet {

    private User u;

    public User getU() {
        return u;
    }

    public void setU(User u) {
        this.u = u;
    }

    @Override
    public String sayHello() {
        return "Good morning";
    }

    @Override
    public String sayHelloToUser() {
        return "Good morning " + u.getName();
    }

}
View Code
package org.server.hessian.study.business;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

public class User implements Serializable {
    private String name = "Dale";

    public User() {

    }

    public User(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Map getInfo() {
        Map m = new HashMap<>();
        m.put("name", this.name);

        return m;
    }
}
View Code

hessianServer端web.xml配置:

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:appConf/spring-app-beans.xml
        </param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>*.do</url-pattern>
    </filter-mapping>

    <servlet>
        <servlet-name>spring-mvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>namespace</param-name>
            <param-value>/config/springMapping/**/</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring-mvc</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>callHessianServer</servlet-name>
        <servlet-class>org.springframework.web.context.support.HttpRequestHandlerServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>callHessianServer</servlet-name>
        <url-pattern>/remoting</url-pattern>
    </servlet-mapping>
View Code

hessianServer端spring-app-beans.xml配置:

    <bean id="b_user" class="org.server.hessian.study.business.User"/>

    <bean id="hessianServer" class="org.server.hessian.study.impl.Hello">
        <property name="u" ref="b_user"/>
    </bean>

    <bean name="callHessianServer"
          class="org.springframework.remoting.caucho.HessianServiceExporter">
        <!-- service引用具体的实现实体Bean-->
        <property name="serviceInterface"
                  value="org.server.hessian.study.implDef.Greet"/>
        <property name="service" ref="hessianServer"/>
    </bean>
View Code

hessianClient端代码:

package org.client.hessian.study;

import com.caucho.hessian.client.HessianProxyFactory;
import org.server.hessian.study.implDef.Greet;

import java.net.MalformedURLException;
import java.util.HashMap;
import java.util.Map;

public class ClientTest {
    public static void main(String[] args) {
        String remoteUrl = "http://127.0.0.1:8080/hessianServer/remoting";
        HessianProxyFactory factory = new HessianProxyFactory();
        Greet server = null;
        Map m = new HashMap<>();
        m.put("name","Tome");
        try {
            server = (Greet) factory.create(Greet.class, remoteUrl);
            print(server);
            print(server.sayHelloToUser());
            print(server.sayHello());
        } catch (MalformedURLException e) {
            print(e);
        }
    }

    public static void print(Object s) {
        System.out.println(s);
    }

}
View Code

使用使用tomcat启动server服务后,

执行client端。

 

以上内容为个人学习测试用例,

参考资料为:spring文档内容【27.3 Using Hessian or Burlap to remotely call services via HTTP】部分。

posted @ 2016-06-13 11:03  Dale_na  阅读(310)  评论(0)    收藏  举报