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配置:

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

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>

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】部分。

spring与hessian整合例的更多相关文章

  1. Mybatis学习--spring和Mybatis整合

    简介 在前面写测试代码的时候,不管是基于原始dao还是Mapper接口开发都有许多的重复代码,将spring和mybatis整合可以减少这个重复代码,通过spring的模板方法模式,将这些重复的代码进 ...

  2. 九 spring和mybatis整合

    1       spring和mybatis整合 1.1     整合思路 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用Sq ...

  3. Spring与Hibernate整合

    Spring与Struts2整合的目的: 让Spring管理Action Spring整合Hinernate的目的: --管理SessionFactory(单例的),数据源 --声明式事务管理 1.首 ...

  4. Mybatis学习(7)spring和mybatis整合

    整合思路: 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(spr ...

  5. MyBatis学习七:spring和MyBatis整合

    <\mybatis\day02\16mybatis和spring整合-sqlSessionFactory配置.avi;> MyBatis学习七:spring和MyBatis整合.逆向工程 ...

  6. Spring Boot 应用系列 5 -- Spring Boot 2 整合logback

    上一篇我们梳理了Spring Boot 2 整合log4j2的配置过程,其中讲到了Spring Boot 2原装适配logback,并且在非异步环境下logback和log4j2的性能差别不大,所以对 ...

  7. Spring Boot:整合Spring Security

    综合概述 Spring Security 是 Spring 社区的一个顶级项目,也是 Spring Boot 官方推荐使用的安全框架.除了常规的认证(Authentication)和授权(Author ...

  8. Spring Boot:整合Spring Data JPA

    综合概述 JPA是Java Persistence API的简称,是一套Sun官方提出的Java持久化规范.其设计目标主要是为了简化现有的持久化开发工作和整合ORM技术,它为Java开发人员提供了一种 ...

  9. SSH框架之Spring+Struts2+Hibernate整合篇

    回顾 -Hibernate框架 ORM: 对象关系映射.把数据库表和JavaBean通过映射的配置文件映射起来, 操作JavaBean对象,通过映射的配置文件生成SQL语句,自动执行.操作数据库. 1 ...

随机推荐

  1. iOS多线程之7.NSOperation的初识

    NSOperation和GCD一样,不用我们管理线程的生命周期,加锁等问题,只要把操作封装进NSOperation中,系统会自动帮我们创建线程,执行操作.而且他是面向对象的,我们看起来更容易理解,使用 ...

  2. iOS开发系列--无限循环的图片浏览器

    --UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件 ...

  3. Mac OS X中bogon的处理

    起因 最近写一个项目,之前在eclipse里的tomcat启动是没问题的,最近不知怎么了,启动的时候ehcache会报一个错误,说java.net.UnknownHostException: bogo ...

  4. [Erlang 0127] Term sharing in Erlang/OTP 上篇

    之前,在 [Erlang 0126] 我们读过的Erlang论文 提到过下面这篇论文: On Preserving Term Sharing in the Erlang Virtual Machine ...

  5. 不同数据库,查询前n条数据的SQL语句

    不同的数据库,支持的SQL语法略有不同,以下是不同数据库查询前n条数据的SQl语句 SQL Server(MSSQL) SELECT TOP n * FROM table_name ORACLE SE ...

  6. 开发管理系统时,安装sqlserver2005问题整理

    最近在为单位开发一个综合管理系统.但是由于时间的问题,有时候就把程序带回家进行修改.但是家里有没有环境,就把数据库文件和程序带回家,可是随之问题来了.要重新在家里陪着开发环境,vs2008非常快的就安 ...

  7. OnDraw函数

    本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6219428.html 方法一.对字符串直接赋值 在View类中定义了OnDraw函数 ...

  8. Intellij IDEA 快捷键整理

    CSDN 2016博客之星评选结果公布      [系列直播]算法与游戏实战技术      "我的2016"主题征文活动 Intellij IDEA 快捷键整理(TonyCody) ...

  9. Warning: strftime(): It is not safe to rely on the system's timezone settings.

    当运行程序时,会出现如下警告: Warning: strftime(): It is not safe to rely on the system's timezone settings. You a ...

  10. Python元组

    Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: tup1 = ('physi ...