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();

}
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();
    }

}
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;
    }
}

hessianServer端web.xml配置:


        contextConfigLocation
        
            classpath:appConf/spring-app-beans.xml
        
    

    
        class>org.springframework.web.context.ContextLoaderListenerclass>
    

    
        encodingFilter
        class>org.springframework.web.filter.CharacterEncodingFilterclass>
        
            encoding
            UTF-8
        
    
    
        encodingFilter
        *.do
    

    
        spring-mvc
        class>org.springframework.web.servlet.DispatcherServletclass>
        
            namespace
            /config/springMapping/**/
        
        1
    
    
        spring-mvc
        *.do
    

    
        callHessianServer
        org.springframework.web.context.support.HttpRequestHandlerServlet
    

    
        callHessianServer
        /remoting
    

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

    class="org.server.hessian.study.business.User"/>

    class="org.server.hessian.study.impl.Hello">
        
    

    class="org.springframework.remoting.caucho.HessianServiceExporter">
        
        
                  value="org.server.hessian.study.implDef.Greet"/>
        
    

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);
    }

}

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

执行client端。

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

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