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配置:
<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整合例的更多相关文章
- Mybatis学习--spring和Mybatis整合
简介 在前面写测试代码的时候,不管是基于原始dao还是Mapper接口开发都有许多的重复代码,将spring和mybatis整合可以减少这个重复代码,通过spring的模板方法模式,将这些重复的代码进 ...
- 九 spring和mybatis整合
1 spring和mybatis整合 1.1 整合思路 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用Sq ...
- Spring与Hibernate整合
Spring与Struts2整合的目的: 让Spring管理Action Spring整合Hinernate的目的: --管理SessionFactory(单例的),数据源 --声明式事务管理 1.首 ...
- Mybatis学习(7)spring和mybatis整合
整合思路: 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(spr ...
- MyBatis学习七:spring和MyBatis整合
<\mybatis\day02\16mybatis和spring整合-sqlSessionFactory配置.avi;> MyBatis学习七:spring和MyBatis整合.逆向工程 ...
- Spring Boot 应用系列 5 -- Spring Boot 2 整合logback
上一篇我们梳理了Spring Boot 2 整合log4j2的配置过程,其中讲到了Spring Boot 2原装适配logback,并且在非异步环境下logback和log4j2的性能差别不大,所以对 ...
- Spring Boot:整合Spring Security
综合概述 Spring Security 是 Spring 社区的一个顶级项目,也是 Spring Boot 官方推荐使用的安全框架.除了常规的认证(Authentication)和授权(Author ...
- Spring Boot:整合Spring Data JPA
综合概述 JPA是Java Persistence API的简称,是一套Sun官方提出的Java持久化规范.其设计目标主要是为了简化现有的持久化开发工作和整合ORM技术,它为Java开发人员提供了一种 ...
- SSH框架之Spring+Struts2+Hibernate整合篇
回顾 -Hibernate框架 ORM: 对象关系映射.把数据库表和JavaBean通过映射的配置文件映射起来, 操作JavaBean对象,通过映射的配置文件生成SQL语句,自动执行.操作数据库. 1 ...
随机推荐
- office 2010 word每次启动都需要配置
解决方式: 进入cmd,运行以下命令即可,如果提示已存在,选择Y覆盖就行了 reg add HKCU\Software\Microsoft\Office\14.0\Word\Options /v No ...
- 利用github pages创建简单的网站
github.com 作为最流行的源代码管理工具已经风靡全球,同时在依托于github也衍生出了各种各样的应用,比如可以利用github搭建博客系统等等. 先换个话题,我们每人手头都或多或少有些&qu ...
- 阶段一:通过网络请求,获得并解析JSON数据(天气应用)
“阶段一”是指我第一次系统地学习Android开发.这主要是对我的学习过程作个记录. 在上一篇阶段一:解析JSON中提到,最近在写一个很简单的天气预报应用.即使功能很简单,但我还是想把它做成一个相对完 ...
- win2003 Enterprise x64 Edtion中的DCOM服务找不到WORD应用程序
打开注册表,找到以下健值 HKEY_CLASSES_ROOT\AppID\{00020906-0000-0000-C000-000000000046} HKEY_CLASSES_ROOT\CLSID\ ...
- Mac下安装Matlab R2015b
步骤 下载Matlab R2015b链接:http://pan.baidu.com/s/1pLGpUfp 密码:k1xg 下载破解文件r2015b_crackhttp://download.csdn. ...
- (总结)Oracle 11g常用管理命令(用户、表空间、权限)
1.启动oracle数据库: 从root切换到oracle用户进入:su - oracle 进入sqlplus环境,nolog参数表示不登录:sqlplus /nolog 以管理员模式登录:sqlpl ...
- MySQL优化一例
DELIMITER $$ USE `xxx`$$ DROP FUNCTION IF EXISTS `F_getBuluDates`$$ CREATE DEFINER=`root`@`localhost ...
- Apache主配置文件httpd.conf 详解
Apache的主配置文件:/etc/httpd/conf/httpd.conf 默认站点主目录:/var/www/html/ Apache服务器的配置信息全部存储在主配置文件/etc/httpd/co ...
- Linux安装详情图解
本文讲解Linux的安装 因为是纯属学习使用,所以安装在了虚拟机里 需要软件: VirtualBox-5.1.10 ubuntu-16.04.1-desktop-amd64 说明: 虚拟机可以选择 ...
- An error occurred during the installation of assembly 'Microsoft.VC90.CRT……的问题
有一段时间没有用到AnkhSvn了,今天工作需要安装了一下.结果安装到一半就无法继续了,提示An error occurred during the installation of assembly ...