一、服务端
1、所需jar包(Spring相关jar包、hessian-4.0.37.jar)
2、服务端代码
2.1、实体对象
package com.hessian.spring.entity; import java.io.Serializable; public class User implements Serializable{ private static final long serialVersionUID = 1L; private String userName; private String password; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
2.2、接口
package com.hessian.spring; import java.util.List; import java.util.Map; import com.hessian.spring.entity.User; public interface IHello { public String sayHello(String name); public String getUserList(List<User> users); public String getUserMap(Map<String, User> maps); }
2.3、实现类
package com.hessian.spring.impl; import java.util.List; import java.util.Map; import com.hessian.spring.IHello; import com.hessian.spring.entity.User; public class IHelloImpl implements IHello { public String sayHello(String name) { return "Hello," + name; } public String getUserList(List<User> users) { StringBuffer stringBuffer = new StringBuffer(); for (User user : users) { stringBuffer.append("["); stringBuffer.append(user.getUserName()); stringBuffer.append("--"); stringBuffer.append(user.getPassword()); stringBuffer.append("]"); } return stringBuffer.toString(); } public String getUserMap(Map<String, User> maps){ StringBuffer stringBuffer = new StringBuffer(); for(String key : maps.keySet()){ stringBuffer.append("["); stringBuffer.append(maps.get(key).getUserName()); stringBuffer.append("--"); stringBuffer.append(maps.get(key).getPassword()); stringBuffer.append("]"); } return stringBuffer.toString(); } }
2.4、配置Web.xml
<!-- Hessian集成Spring--> <servlet> <servlet-name>remote</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>namespace</param-name> <param-value>classes/remote-servlet</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>remote</servlet-name> <url-pattern>/remote/*</url-pattern> </servlet-mapping>
2.5、配置remote-servlet.xml,该文件位于src目录下
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <!-- 接口的具体实现类 --> <bean id="iHello" class="com.hessian.spring.impl.IHelloImpl" /> <!-- 使用Spring的HessianServie做代理 --> <bean name="/HelloSpring" class="org.springframework.remoting.caucho.HessianServiceExporter"> <!-- service引用具体的实现实体Bean--> <property name="service" ref="iHello" /> <property name="serviceInterface" value="com.hessian.spring.IHello" /> </bean> </beans>
注:
这个文件为什么叫remote-servlet.xm
在web.xml中有配置:<servlet-name>remote</servlet-name>。
所以remote-servlet.xml的文件名必须以
二、客户端
1、配置客户端 remote-client.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <!-- 客户端Hessian代理工厂Bean --> <bean id="helloService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean"> <!-- 请求代理Servlet路径 --> <property name="serviceUrl"> <value>http://127.0.0.1:8080/remote/HelloSpring</value> </property> <!-- 接口定义 --> <property name="serviceInterface"> <value>com.hessian.spring.IHello</value> </property> </bean> </beans>
2、客户端测试类
package com.hessian.spring.test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.hessian.spring.IHello; import com.hessian.spring.entity.User; public class SpringClientTest { public static String url = "http://127.0.0.1:8080/remote/HelloSpring"; public static void main(String[] args) { try { ApplicationContext contex = new ClassPathXmlApplicationContext("remote-client.xml"); // 获得客户端的Hessian代理工厂bean IHello iHello = (IHello) contex.getBean("helloService"); System.out.println(iHello.sayHello("tzz")); User user1 = new User(); user1.setUserName("a1"); user1.setPassword("123456"); User user2 = new User(); user2.setUserName("a2"); user2.setPassword("123456"); List<User> users = new ArrayList<User>(); users.add(user1); users.add(user2); System.out.println(iHello.getUserList(users)); Map<String, User> maps = new HashMap<String, User>(); maps.put("user1", user1); maps.put("user2", user2); System.out.println(iHello.getUserMap(maps)); } catch (Exception e) { e.printStackTrace(); } } }
相关推荐
下面将详细讲解Hessian与Spring集成的关键知识点。 首先,理解Hessian是什么至关重要。Hessian是一个二进制的Web服务协议,由Caucho公司开发。它提供了轻量级、高效的RPC(Remote Procedure Call)框架,使得Java...
二、Spring集成Hessian Spring通过其AOP(面向切面编程)和IoC(控制反转)理念,为Hessian提供了便捷的整合方式。在Spring中,我们可以定义一个Service Bean,然后使用HessianExporter或者HessianProxyFactoryBean...
3. **Spring Web库**:如果Hessian服务是通过HTTP提供,那么还需要`spring-web.jar`,它提供了Web相关的支持,如Servlet API的集成。 4. **Servlet容器库**:如`servlet-api.jar`,如果你的应用运行在传统的Java EE...
### Hessian与Spring整合知识点详解 #### 一、Hessian简介 ...通过本文的介绍,相信读者已经掌握了如何使用Hessian与Spring集成的基本步骤和技术要点。在实际项目开发中,还需要根据具体需求进行更深入的研究和实践。
当我们将Hessian与Spring进行整合时,主要目标是利用Spring的依赖注入(Dependency Injection, DI)和组件管理能力来简化Hessian服务的创建和管理。以下是一些关键知识点: 1. **Spring核心模块**(spring-core-...
8. **测试与监控**:为了确保服务的稳定性和可靠性,我们需要编写单元测试和集成测试,同时可以借助Spring Boot Actuator等工具,监控服务的运行状态和性能指标。 综上所述,"Hessian与Spring整合"的核心是利用...
在Spring框架中集成Hessian,我们需要进行以下步骤: 1. **创建服务接口和服务实现**: 首先,你需要定义一个服务接口,然后实现这个接口。例如,我们有一个`HelloHessianService`接口,包含一个`sayHello`方法。 `...
Spring集成Hessian的过程主要包括以下几个步骤: 1. **定义服务接口**:首先,我们需要创建一个Java接口,包含服务提供者需要暴露给消费者的方法。例如,我们可以定义一个名为`UserService`的接口,包含用户查询、...
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。参考文档地址...
**Spring与Hessian的集成** 在Spring中集成Hessian,通常需要以下步骤: 1. **创建服务接口和服务实现:** 首先,你需要定义一个Java接口,其中包含你希望暴露给客户端的方法。然后实现这个接口,提供实际的业务...
#### 三、Hessian与Spring集成的优势 将Hessian与Spring框架结合使用,不仅可以充分利用Spring的依赖注入和AOP等功能,还可以简化Hessian服务的配置与管理。Spring的`DispatcherServlet`可以作为前端控制器,根据URL...
总之,Spring集成Hessian插件并改用自动注入可以极大简化服务的管理和调用。通过合理的配置和注解,我们可以实现服务的自动发现和依赖注入,提升代码的灵活性和可维护性。同时,理解并熟练掌握这一技术对于提升开发...
这个压缩包文件包含了关于Hessian的入门实例以及如何将其与Spring框架整合的教程。 一、Hessian入门实例 Hessian的入门实例主要展示了如何创建一个简单的服务提供者和消费者。首先,我们需要定义一个服务接口,例如...
在本文中,我们将通过实例代码来介绍如何将 Hessian 集成到 Spring Boot 应用程序中。Hessian 是一个基于 RPC(Remote Procedure Call,远程过程调用)的轻量级框架,它提供了一个高效、灵活和可扩展的方式来实现...
综上所述,将Hessian服务应用于Spring Web Flow项目,能够有效提升前端与后端之间的通信效率,同时利用SWF的强大流程管理能力,为用户提供顺畅的交互体验。然而,这也需要开发者对Spring、Spring Web Flow以及...
一个简单的Hessian,简单介绍了Hessian的使用方式,介绍了Hessian和Spring集成的使用方式,以及单独使用Hessian的方式。
**Spring AOP与Hessian的结合** 在Spring中,Hessian通常用来实现远程服务调用。通过AOP,我们可以对Hessian服务进行拦截,添加如日志、性能监控等额外功能。以下是一个基本的步骤: 1. **创建Hessian服务**:首先...
4. **客户端调用**:客户端可以选择与Spring集成,通过Spring的`ApplicationContext`获取代理对象,或者直接使用Hessian工具生成代理。 **安全机制** Hessian提供了基于X.509证书的加密和签名机制,这包括`X509...
标题 "Hessian3.1与Spring2.5的整合" 涉及的是在Java开发环境中,如何将Hessian远程调用服务与Spring框架相结合,以便实现高效、轻量级的分布式服务通信。Hessian是一种二进制协议,它允许远程方法调用(RMI)在HTTP上...
Spring的核心特性包括依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP),它还支持数据库事务管理、JMS、JMX等功能,并且可以与其他Java EE技术如JPA、JSF等无缝集成。...