Hessian入门(与Spring集成)
By:wtang
说明 :
1. 讲述如何配置Hessian的服务器端(与Spring集成).
2. 讲述客户端如何调用
① 使用HessianProxyFactory Hessian代理工厂直接调用
② 使用HessianProxyFactoryBean Hessian代理工厂Bean来完成接口调用.
1. 讲述如何配置Hessian的服务器端(与Spring集成).
接口定义类: com.wtang.isay. Isay:
- package com.wtang.isay;
- public interface Isay {
- public String sayHello(String arg1,String arg2);
- }
接口具体实现类: com.wtang.isay. IsayImpl
- package com.wtang.isay;
- public class IsayImpl implements Isay {
- public String sayHello(String arg1, String arg2) {
- return "Hello:" + arg1 + arg2;
- }
- }
配置Web.xml:
- <servlet>
- <servlet-name>remote</servlet-name>
- <!-- 使用Spring的代理Servlet -->
- <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>
配置remote-servlet.xml[该文件位于src目录下,即编译后存在与classes下]:
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
- <beans>
- <!-- 接口的具体实现类 -->
- <bean id="impl" class="com.wtang.isay.IsayImpl" />
- <!-- 使用Spring的HessianServie做代理 -->
- <bean name="/helloSpring"
- class="org.springframework.remoting.caucho.HessianServiceExporter">
- <!-- service引用具体的实现实体Bean-->
- <property name="service" ref="impl" />
- <property name="serviceInterface" value="com.wtang.isay.Isay" />
- </bean>
- <!-- 可以配置多个HessianServiceExporter代理Bean -->
- </beans>
注:
这个文件为什么叫remote-servlet.xml呢?
因为我们在web.xml中有配置:<servlet-name>remote</servlet-name>。
所以remote-servlet.xml的文件名必须以
<servlet-name>中配置的servlet-name作为文件名的开头,
且文件名的格式必须是[servlet-name]-servlet.xml格式,否则检测不到。
即:
<param-value>classes/remote-servlet</param-value>
所以文件名为remote-servlet.xml。
2. 讲述客户端如何调用
① 使用HessianProxyFactory Hessian代理工厂直接调用
即:
- package com.wtang.test;
- import java.net.MalformedURLException;
- import com.caucho.hessian.client.HessianProxyFactory;
- import com.wtang.isay.Isay;
- public class NormalClient {
- public static void main(String[] args) throws MalformedURLException {
- //Spring Hessian代理Servelet
- String url = "http://localhost:8080/HessianSpring/remote/helloSpring";
- HessianProxyFactory factory = new HessianProxyFactory();
- Isay api = (Isay) factory.create(Isay.class, url);
- System.out.println(api.sayHello("chen", "weitang"));
- }
- }
输出Hello:chenweitang
2. 讲述客户端如何调用
② 使用HessianProxyFactoryBean Hessian代理工厂Bean来完成接口调用.
配置客户端 remote-client.xml:
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
- <beans>
- <!-- 客户端Hessian代理工厂Bean -->
- <bean id="clientSpring" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
- <!-- 请求代理Servlet路径 -->
- <property name="serviceUrl">
- <value>http://localhost:8080/HessianSpring/remote/helloSpring</value>
- </property>
- <!-- 接口定义 -->
- <property name="serviceInterface">
- <value>com.wtang.isay.Isay</value>
- </property>
- </bean>
- </beans>
调用:
- package com.wtang.test;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import com.wtang.isay.Isay;
- public class SpringClient {
- public static void main(String[] args) {
- ApplicationContext contex = new ClassPathXmlApplicationContext(
- "remote-client.xml");
- // 获得客户端的Hessian代理工厂bean
- Isay i = (Isay) contex.getBean("clientSpring");
- System.out.println(i.sayHello("chen", "weitang"));
- }
- }
输出Hello:chenweitang
相关推荐
一、Hessian入门实例 Hessian的入门实例主要展示了如何创建一个简单的服务提供者和消费者。首先,我们需要定义一个服务接口,例如`HelloService`,包含一个或多个方法,这些方法将被远程调用。然后,我们需要实现这...
【Hession入门及注入Spring】 Hessian是一种轻量级的RPC(Remote Procedure Call)协议,它基于HTTP协议,主要用于提供二进制序列化的远程方法调用。Hessian使得Java对象能够在网络间高效地进行传输,简化了分布式...
5. **框架集成**:Spring 与 Struts、Hibernate、Hessian、Quartz 等多种框架无缝集成,降低了使用这些框架的难度。 6. **API 使用难度降低**:Spring 对如 JDBC、JavaMail、远程调用等复杂 API 提供了简洁的封装,...
读者将了解到不同的远程调用协议(如RMI、Hessian、Burlap等)与Spring Remoting的集成方式,以及如何构建分布式应用系统。 ### 第17章:使用Spring的Web应用程序 本章专注于Spring MVC框架,讲解了如何使用Spring...
Spring Framework 5.0中文文档PDF可能还包括了对CORS支持、与其他Web框架的集成、WebSocket支持等Web技术的介绍,以及如何使用Spring框架提供远程服务和Web服务。 关于远程服务和Web服务的章节,文档可能讲述了使用...
讲解如何利用Spring框架实现远程服务调用,包括RMI、Hessian、 Burlap等多种远程调用技术的集成。 **第7章:访问企业服务** 介绍如何使用Spring框架与企业级服务进行交互,如JMS、JNDI、JTA等,以及如何处理复杂的...
这个压缩包文件可能包含了一个Spring Cloud的入门示例项目,其中可能集成了Nacos、Sentinel、RocketMQ和Dubbo。通过这个项目,你可以学习如何在实际应用中配置和使用这些组件,理解它们之间的交互和作用,从而更好地...
Spring是一个强大的企业级应用开发框架,它提供了对Hession的支持,可以方便地集成到Spring项目中。 在Spring中使用Hessian,我们需要以下几个步骤: 1. **创建服务接口**:定义你需要暴露的服务接口,例如: ```...
7. **Integration**:Spring提供了多种与其他技术或框架的集成,例如与消息中间件(如JMS)、远程调用(RMI、Hessian、 Burlap)、EJB等。 在文件名称`spring-framework-2.0.2-with-dependencies`中,我们可以推断...
《Springcloud Alibaba-2020微服务详解》是一份深度剖析Springcloud Alibaba微服务架构的教程,旨在帮助开发者从入门到精通掌握这一强大的微服务框架。本教程涵盖了Springcloud Alibaba中的各个关键组件,旨在让读者...
7. **Spring集成** Dubbo可以无缝集成Spring,通过Spring的XML配置或注解方式,可以轻松地实现服务的发布和引用。这使得开发者能更专注于业务逻辑,而不是底层细节。 8. **监控与日志** Dubbo提供了一套监控体系...
- **Spring Boot集成**:利用Spring Boot的便利性,简化Dubbo的配置和管理。 - **异步调用与回调**:通过异步模式,提高服务处理能力,实现非阻塞调用。 - **服务治理优化**:定期进行服务治理策略调整,如根据...
- Dubbo可以与Spring、Spring Boot等Web框架集成,通过RESTful API或SOAP Web服务提供远程服务。 - 在Web应用中,可以使用`@Controller`和`@RequestMapping`注解创建REST接口,然后在后台调用Dubbo服务。 7. **...
同时,Dubbo 2.x版本引入了Spring Boot的支持,简化了配置和集成流程,使其更易于使用。 总之,"Dubbo入门之HelloWorld"是一个很好的起点,通过实践这个简单的示例,我们可以快速理解Dubbo的工作原理,并为进一步...
6. **协议与序列化**:Dubbo支持多种通信协议(如Dubbo、RMI、HTTP等)和序列化方式(如Hessian、Fastjson等)。你需要知道如何选择和配置这些选项。 7. **服务调用与负载均衡**:Dubbo提供了多种负载均衡策略(如...
在实践中,你还可以探索Dubbo与其他微服务框架(如Spring Cloud)的集成,以及如何在大型项目中实施服务治理的最佳实践。总之,掌握Dubbo意味着你具备了构建高性能、高可用分布式系统的能力,这对于任何Java开发者在...
10. **未来趋势**:讨论Dubbo与其他微服务框架(如Spring Cloud)的对比,以及Dubbo 3.0的新特性和发展方向。 通过这门【Dubbo入门到精通架构高级课程】,学员将不仅能够掌握Dubbo的基本使用,还能了解到如何在复杂...
5. **Spring整合**:为了简化配置和管理,我们可以利用Spring的依赖注入特性,将Dubbo服务的配置集成到Spring容器中。这样,服务提供者和服务消费者可以通过Spring的XML配置或注解方式来声明和引用服务。 搭建步骤...
- 三方库如Spring、ZK、Hessian等的升级,以满足社区的需求,如REST支持、Spring Boot集成、Hessian对Java 8的支持等。 - Dubbo的核心模块化,旨在提高代码可维护性和扩展性。 - 探索新的运维工具(Ops)如Dubbo ...