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 ...
随机推荐
- JavaScript执行环境
执行环境(Execution Context,也称为"执行上下文")是JavaScript中最为重要的一个概念.执行环境定义了变量或函数有权访问的其它数据,决定了各自的行为.当Ja ...
- CentOS7 修改防火墙,增加外网可以访问的端口号
CentOS7 修改防火墙,增加外网可以访问的端口号: vim /etc/sysconfig/iptables 增加一条 -A INPUT -p tcp -m state --state NEW -m ...
- Visual Studio2015 常用快捷键
项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = 显示Solution Explorer(解决方案资源管理器) Shift + Alt+ C = 添加 ...
- Oracle forall bulk collect批量数据更新
对于数据量较大的插入操作可采用此种方法操作,注意: limit减少内存占用,如果数据量较大一次性全部加载到内存中,对PGA来说压力太大,可采用limit的方法一次加载一定数量的数据,建议值通常为100 ...
- mysql主备(centos6.4)
服务器基本环境: 两台centos6.4.iptables diabled .selinux disabled 两台的hosts解析 #yum install mysql -y //这个一定要装 ...
- 萌新笔记——封装hiredis——C++与redis对接(一)(string的SET与GET操作)
在菜鸟教程自学了redis,总想着像Mysql一样,在C/C++中进行对接.于是查询了一些资料,最后找到了hiredis.然而直接用它的话,难免有点不方便.于是,对其进行封装. hiredis直接去g ...
- [iOS]ReactiveCocoa安装方法
1. 替换Ruby镜像 我们想要使用CocoaPods来安装ReactiveCocoa.由于OS X上的Ruby镜像被墙了,感谢淘宝为我们提供了国内访问镜像. $ gem sources --remo ...
- 腾讯php经历
12年毕业至今,一年C#,2年php,几个月node,因为一些原因再次离职,接到腾讯互娱的php面试电话,匆匆准备了一番,便去了科兴科技园腾讯的高大上办公楼. 1.笔试 试题大部分网上都有,例如: 用 ...
- JMM(java内存模型)
What is a memory model, anyway? In multiprocessorsystems, processors generally have one or more laye ...
- shell编程:定义简单标准命令集
shell是用户操作接口的意思,操作系统运行起来后都会给用户提供一个操作界面,这个界面就叫shell,用户可以通过shell来调用操作系统内部的复杂实现,而shell编程就是在shell层次上进行编程 ...