- 浏览: 1248354 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (193)
- ant/maven (6)
- algorithm (5)
- tomcat/weblogic/jboss (6)
- javascript/jquery (13)
- java (33)
- flex/flash (0)
- JPA/Hibernate/myBatis (18)
- java concurrent (7)
- test (2)
- windows/linux (6)
- java collection (7)
- design pattern (2)
- life/health (3)
- database (12)
- IDE (4)
- spring/ejb (20)
- html/css/ckeditor (7)
- jsp/servlet (3)
- java io (13)
- java security (4)
- jni (0)
- svn/git (2)
- english (2)
- java jmx (1)
- xml (1)
- struts/springmvc (9)
- middleware (2)
- cache (1)
- cglib (3)
最新评论
-
jlotusYo:
博主,真感谢。
Java 密码扩展无限制权限策略文件 -
senninha:
这个。。是api说明吧。。
ScheduledExecutorService 源码分析 -
zoutao2008:
请问大文件如何处理?按你这种方式的话,文件超过200M时就会报 ...
hessian系列之二:上传文件 -
lwj1113:
lwj1113 写道谢谢博主这么细致的demo;在系列五中通过 ...
myBatis系列之五:与Spring3集成 -
lwj1113:
谢谢博主这么细致的demo;在系列五中通过testng测试类跑 ...
myBatis系列之五:与Spring3集成
Spring封装了hessian客户端和服务端的通用代码,把实现者和调用者作为bean放到spring容器中管理,简化了开发。
实际生产情况,接口项目里面只定义接口,分别为服务端项目和客户端项目所引用:
1. 接口项目:
pom.xml文件:
2. 服务端项目:
pom.xml文件:
web.xml
hessian-simple.xml:
启动服务端项目:
浏览器输入:http://localhost/hessian/addService.htm,查看是否可以调用。
3. 客户端项目:
pom.xml文件
spring-beans.xml文件
测试类:
运行测试方法,查看是否调用成功。
附:
客户端Hessian bean的配置也可以放到接口项目中,这样一来,调用hessian的工程只需添加对接口项目的引用,而后在spring配置文件中导入:
实际生产情况,接口项目里面只定义接口,分别为服务端项目和客户端项目所引用:
1. 接口项目:
pom.xml文件:
<groupId>com.john.spring</groupId> <artifactId>hessian-intf</artifactId> <version>1.0.0</version> <packaging>jar</packaging>
public interface AddService { public int add(int a, int b); public long add(long a, long b); }
2. 服务端项目:
pom.xml文件:
<groupId>com.john.spring</groupId> <artifactId>hessian-server</artifactId> <version>1.0.0</version> <packaging>war</packaging> <properties> <testng.version>6.4</testng.version> <hessian.version>4.0.7</hessian.version> <spring.version>3.1.2.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>com.john.spring</groupId> <artifactId>hessian-intf</artifactId> <version>1.0.0</version> </dependency> <dependency><!-- DispatcherServlet在spring-webmvc包中 --> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>com.caucho</groupId> <artifactId>hessian</artifactId> <version>${hessian.version}</version> </dependency> </dependencies>
public class AddServiceImpl implements AddService { @Override public int add(int a, int b) { System.out.println("add(int a, int b) is invoked"); return a + b; } @Override public long add(long a, long b) { System.out.println("add(long a, long b) is invoked"); return a + b; } }
web.xml
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <servlet> <servlet-name>hessian</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/hessian-simple.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>hessian</servlet-name> <url-pattern>*.htm</url-pattern> </servlet-mapping> </web-app>
hessian-simple.xml:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="addService.htm" class="com.john.spring.hessian.service.impl.AddServiceImpl" /> <bean name="/addService.htm" class="org.springframework.remoting.caucho.HessianServiceExporter"> <property name="service" ref="addService.htm" /> <property name="serviceInterface" value="com.john.spring.hessian.service.intf.AddService" /> </bean> </beans>
启动服务端项目:
浏览器输入:http://localhost/hessian/addService.htm,查看是否可以调用。
3. 客户端项目:
pom.xml文件
<groupId>com.john.spring</groupId> <artifactId>hessian-client</artifactId> <version>1.0.0</version> <packaging>jar</packaging> <properties> <testng.version>6.4</testng.version> <hessian.version>4.0.7</hessian.version> <spring.version>3.1.2.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>com.john.spring</groupId> <artifactId>hessian-intf</artifactId> <version>1.0.0</version> </dependency> <dependency><!-- HessianProxyFactoryBean在spring-web包中 --> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>com.caucho</groupId> <artifactId>hessian</artifactId> <version>${hessian.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>${testng.version}</version> <scope>test</scope> </dependency> </dependencies>
spring-beans.xml文件
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="addService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean"> <property name="serviceUrl" value="http://localhost:8080/hessian/addService.htm" /> <property name="serviceInterface" value="com.john.spring.hessian.service.intf.AddService" /> <!-- By default the value is false. As a matter of fact, it doesn't influence the test result, the overloaded method still be supported --> <property name="overloadEnabled" value="false" /> </bean> </beans>
测试类:
@ContextConfiguration(locations={"classpath:conf/spring/spring-beans.xml"}) public class AddServiceTest { @Autowired AddService addService; @Test public void test() { int r = addService.add(4, 5); System.out.println("The result is " + r); } }
运行测试方法,查看是否调用成功。
附:
客户端Hessian bean的配置也可以放到接口项目中,这样一来,调用hessian的工程只需添加对接口项目的引用,而后在spring配置文件中导入:
<import resource=”classpath*:conf/spring/spring-*.xml” />
评论
1 楼
hl174
2016-06-02
启动服务端项目:
浏览器输入:http://localhost/hessian/addService.htm,查看是否可以调用。
这里报错了
javax.servlet.ServletException: No adapter for handler [day0602.IHelloServiceImpl@738cf5]: The DispatcherServlet configuration needs to include a HandlerAdapter that supports this handler
浏览器输入:http://localhost/hessian/addService.htm,查看是否可以调用。
这里报错了
javax.servlet.ServletException: No adapter for handler [day0602.IHelloServiceImpl@738cf5]: The DispatcherServlet configuration needs to include a HandlerAdapter that supports this handler
发表评论
-
Netty系列之二、Netty组件
2014-10-12 19:55 0Netty主要由以下几个组件构成: Bootstrap o ... -
Netty系列之二:传输方式
2014-09-17 22:35 0NIO (Non-blocking I/O) io.netty ... -
Java正则表达式实例
2014-08-25 22:50 1934题目: 有两个文件context.txt和words ... -
quartz系列之九:存储
2014-08-05 13:16 0这里以1.8.x为例: 任务 ... -
JVM 四种引用
2014-04-24 19:56 17641. 强引用 指通过普通 ... -
Proxy 源码分析
2014-04-21 10:47 0public class Proxy implements ... -
NIO UDP 编程
2014-04-17 23:18 4251和TCP的SocketChannel类似,UDP的Dat ... -
Matcher 源码分析
2014-04-15 14:45 0首先看下接口: public interface Matc ... -
BTrace 使用
2014-03-20 18:03 0简介 Btrace (Byte Trace)是Sun推出的一款 ... -
NIO Socket 编程
2014-04-11 22:48 1660Java NIO (Nonblocking IO)解决了常规I ... -
hessian系列之二:上传文件
2014-02-17 17:16 6221hessian较早版本通过 byte[] 进行文件传输;4.0 ... -
hessian系列之一:Hello world
2014-01-06 20:51 2296Hessian是一个Web Service的轻量级二进制协议, ... -
XStream:自定义转换器
2013-12-30 22:47 0XStream是一款不错的oxm (Object-XML ma ... -
Http连接工具类
2013-12-28 16:13 0public class HttpConnUtil { ... -
Integer源码分析
2013-12-26 19:59 0private static String toU ... -
全排序
2013-12-23 21:02 0写一个函数, 如 foo(String str), 打印出 s ... -
logback系列之四:输出日志到不同文件
2013-12-03 16:25 69000logback系列之一:输出日志到控制台 logback系列之 ... -
Properties 源码分析
2013-11-26 10:32 01. Properties类扩展了Hashtable,用来保存 ... -
logback系列之三:输出日志到文件(滚动)
2013-11-16 23:37 64406logback系列之一:输出日志到控制台 logback系列之 ... -
logback系列之二:输出日志到文件
2013-11-15 15:20 30337logback系列之一:输出日志到控制台 logback系列之 ...
相关推荐
Spring集成Hessian的过程主要包括以下几个步骤: 1. **定义服务接口**:首先,我们需要创建一个Java接口,包含服务提供者需要暴露给消费者的方法。例如,我们可以定义一个名为`UserService`的接口,包含用户查询、...
下面将详细讲解Hessian与Spring集成的关键知识点。 首先,理解Hessian是什么至关重要。Hessian是一个二进制的Web服务协议,由Caucho公司开发。它提供了轻量级、高效的RPC(Remote Procedure Call)框架,使得Java...
**Spring与Hessian的集成** 在Spring中集成Hessian,通常需要以下步骤: 1. **创建服务接口和服务实现:** 首先,你需要定义一个Java接口,其中包含你希望暴露给客户端的方法。然后实现这个接口,提供实际的业务...
在将Hessian与Spring进行整合时,我们需要确保引入了正确的jar包。这些jar包通常包括以下几个核心组件: 1. **Hessian库**:这是实现Hessian RPC的基础,包含了序列化和反序列化的类以及远程调用的相关接口。主要的...
在Spring框架中集成Hessian,我们需要进行以下步骤: 1. **创建服务接口和服务实现**: 首先,你需要定义一个服务接口,然后实现这个接口。例如,我们有一个`HelloHessianService`接口,包含一个`sayHello`方法。 `...
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。参考文档地址...
综上所述,将Hessian服务应用于Spring Web Flow项目,能够有效提升前端与后端之间的通信效率,同时利用SWF的强大流程管理能力,为用户提供顺畅的交互体验。然而,这也需要开发者对Spring、Spring Web Flow以及...
当我们将Hessian与Spring进行整合时,主要目标是利用Spring的依赖注入(Dependency Injection, DI)和组件管理能力来简化Hessian服务的创建和管理。以下是一些关键知识点: 1. **Spring核心模块**(spring-core-...
二、Spring集成Hessian Spring通过其AOP(面向切面编程)和IoC(控制反转)理念,为Hessian提供了便捷的整合方式。在Spring中,我们可以定义一个Service Bean,然后使用HessianExporter或者HessianProxyFactoryBean...
8. **测试与监控**:为了确保服务的稳定性和可靠性,我们需要编写单元测试和集成测试,同时可以借助Spring Boot Actuator等工具,监控服务的运行状态和性能指标。 综上所述,"Hessian与Spring整合"的核心是利用...
**Spring AOP与Hessian的结合** 在Spring中,Hessian通常用来实现远程服务调用。通过AOP,我们可以对Hessian服务进行拦截,添加如日志、性能监控等额外功能。以下是一个基本的步骤: 1. **创建Hessian服务**:首先...
6. **Spring集成**: 在Spring中使用Hessian,通常需要配置一个HessianExporter,它会暴露一个Spring Bean作为Hessian服务。客户端可以通过HessianProxyFactoryBean创建对服务的代理,然后像调用本地方法一样调用远程...
4. **客户端调用**:客户端可以选择与Spring集成,通过Spring的`ApplicationContext`获取代理对象,或者直接使用Hessian工具生成代理。 **安全机制** Hessian提供了基于X.509证书的加密和签名机制,这包括`X509...
这个压缩包文件包含了关于Hessian的入门实例以及如何将其与Spring框架整合的教程。 一、Hessian入门实例 Hessian的入门实例主要展示了如何创建一个简单的服务提供者和消费者。首先,我们需要定义一个服务接口,例如...
标题 "Hessian3.1与Spring2.5的整合" 涉及的是在Java开发环境中,如何将Hessian远程调用服务与Spring框架相结合,以便实现高效、轻量级的分布式服务通信。Hessian是一种二进制协议,它允许远程方法调用(RMI)在HTTP上...
总之,Spring集成Hessian插件并改用自动注入可以极大简化服务的管理和调用。通过合理的配置和注解,我们可以实现服务的自动发现和依赖注入,提升代码的灵活性和可维护性。同时,理解并熟练掌握这一技术对于提升开发...
此外,可能会有对其他开源项目如Spring的更好集成,使得在企业级应用中部署更加便捷。 Hessian4.0.7是相对比较新的一个版本,它可能包含了更多的改进和新功能。例如,安全性的强化可能是一个重点,如加密传输以保护...
【标题】"spring、hessian通过tomcat的简单环境应用源代码"涉及到的是在Java Web开发中使用Spring框架和Hessian服务序列化技术在Tomcat服务器上的集成与应用。Spring是一个广泛使用的开源Java应用程序框架,它提供了...
【描述】:在描述中,我们看到"spring+hessian+maven整合.zip",这表明压缩包中可能是一个示例项目,用于演示如何将Spring、Hessian和Maven集成到一起。Spring是Java领域广泛使用的IoC(Inversion of Control)和AOP...
Spring框架提供了强大的依赖注入和AOP(面向切面编程)能力,可以帮助开发者轻松地集成各种服务,包括Hessian。在Spring中整合Hessian,首先需要在Spring配置文件中定义Hessian的服务和客户端bean。 1. **Hessian...