SpringMVC集成Hessian

SpringMVC集成Hessian

首先强调这里是SpringMVC,不是Spring,这两者在集成Hessian的时候还是有差别的。Spring集成相对简单,网上随便搜一个就行。

SpringMVC有点麻烦。

注:如果你还不了解Hessian,可以看Hessian简单示例

前提条件

假设你的SpringMVC环境已经配置了好了。

主要是在web.xml中有了如下的配置:

<servlet>
    <!-- 名字随便,和你springmvc的配置xml一致即可 -->
    <servlet-name>sys</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
   <!-- 你自己的映射配置 -->
</servlet-mapping>

另外你已经配置了相应的sys-servlet.xml文件(sys名字和你自己的保持一致即可)。

集成Hessian

为了针对Hessian的请求,在web.xml中增加了如下映射:

<servlet-mapping>
    <!-- 名字要保持一致 -->
    <servlet-name>sys</servlet-name>
    <url-pattern>*.hessian</url-pattern>
</servlet-mapping>

然后在sys-servlet.xml中添加如下配置:

<!--hessian-->
<bean id="httpRequestHandlerAdapter" class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean id="importService" class="com.xxx.pr.service.impl.ImportServiceImpl"/>
<bean name="/import.hessian" class="org.springframework.remoting.caucho.HessianServiceExporter">
    <property name="service" ref="importService"/>
    <property name="serviceInterface" value="com.xxx.pr.service.ImportService"/>
</bean>

HessianServiceExporter是继承HttpRequestHandler接口的,所以需要HttpRequestHandlerAdapter来处理这种请求。

BeanNameUrlHandlerMapping的作用是,当<bean>name属性以/开头的时候,映射为url请求。

HessianServiceExporter中的两项属性,一个是serviceref属性指向的实现类。一个是serviceInterface,指向的是接口。

做好如上配置后,启动服务器。

然后访问http://localhost:8080/myweb/import.hessian即可。具体地址根据自己的来写。

在浏览器打开后,会显示下面的样子:

HTTP Status 405 - HessianServiceExporter only supports POST requests

type Status report

message HessianServiceExporter only supports POST requests

description The specified HTTP method is not allowed for the requested resource.

Apache Tomcat/7.0.56

如果如上显示,说明就没有问题了。

调用

如果在Spring中调用,可以尝试如下配置

<bean id="importBean"
class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
    <property name="serviceUrl"
         value="http://localhost:8080/myweb/import.hessian"></property>
    <property name="serviceInterface" value="com.xxx.pr.service.ImportService"></property>
</bean>

也可以直接使用Hessian调用

String url = "http://localhost:8080/myweb/import.hessian";
HessianProxyFactory factory = new HessianProxyFactory();
ImportService basic = (ImportService) factory.create(ImportService.class, url);
时间: 2024-10-06 02:39:05

SpringMVC集成Hessian的相关文章

Springmvc集成Shiro实现权限管理

Shiro是一个安全框架,他可以集成其他开发开发框架 如:Springmvc,实现用户身份认证.权限管理等等功能,shiro详细的介绍也就不讲了,这里给出一些关键的知识点吧: 知识点: shiro中默认的过滤器 过滤器名称 过滤器类 描述 anon org.apache.shiro.web.filter.authc.AnonymousFilter 匿名过滤器 authc org.apache.shiro.web.filter.authc.FormAuthenticationFilter 如果继续

spring+springMVC集成(annotation方式)

spring+springMVC集成(annotation方式) SpringMVC+Spring4.0+Hibernate 简单的整合 MyBatis3整合Spring3.SpringMVC3

springMVC系列之(三) spring+springMVC集成(annotation方式)

个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助.不过,如果用都不会,谈思想就变成纸上谈兵了!!!先技术,再思想.实践出真知. 1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来.它是为了解决企业应用开发的复杂性而创建的.Spring使用

SpringMVC集成rabbitmq:优化秒杀下单环节

前言 上一篇在springboot中基于自动配置集成了rabbitmq.那么回到最初的话题中就是想在秒杀下单环节增加排队机制,从而达到限流的目的. 优化秒杀下单流程 之前是在控制器里拿到客户端请求后直接入库.减库存.如果碰到羊毛党其实这套机制是不行的.并发量高的时候,库存数量也会不准确.那么引入rabbitmq则在下单时让用户信息产生一条消息入队.然后消费者处理下单(是否重复下单.下单失败.库存不够).客户端接受到请求已入队列(response引入state处理交互)后发起ajax轮询请求,处理

springmvc集成shiro登录失败处理

一般的登录流程会有:用户名不存在,密码错误,验证码错误等.. 在集成shiro后,应用程序的外部访问权限以及访问控制交给了shiro来管理. shiro提供了两个主要功能:认证(Authentication)和授权(Authorization);认证的作用是证明自身可以访问,一般是用户名加密码,授权的作用是谁可以访问哪些资源,通过开发者自己的用户角色权限系统来控制. shiro的会话管理和缓存管理不在本文范围内. 下面通过登录失败的处理流程来介绍springmvc与shiro的集成. 项目依赖:

Spring集成Hessian

Hessian是一个轻量级的远程调用工具,采用的是Binary RPC协议,很适合于发送二进制数据,基于HTTP具有防火墙穿透能力.Hessian一般是通过Web应用来提供服务,因此非常类似于平时我们用的Web Service.只是它不使用SOAP协议,但相比Web Service而言更简单.快捷. Burlap与Hessian相似,只是Burlap传输的将是XML而不是二进制的数据. RMI很难穿越防火墙,2端都必须基于Java开发,传输对象时还需要考虑对象版本的问题.而Burlap与Hess

springMvc集成Velocity

一.什么是Velocity Velocity 是一个基于 Java 的模板引擎框架,提供的模板语言可以使用在 Java 中定义的对象和变量上.Velocity 是 Apache 基金会的项目,开发的目标是分离 MVC 模式中的持久化层和业务层.但是在实际应用过程中,Velocity 不仅仅被用在了 MVC 的架构中,还可以被用在以下一些场景中. 1. Web 应用:开发者在不使用 JSP 的情况下,可以用 Velocity 让 HTML 具有动态内容的特性. 2. 源代码生成:Velocity

springmvc集成swagger实现接口文档自动化生成

一直苦于文档整理工作,因为这是一个很无聊的工作,偶然在网上看到了swagger这东西,感觉不错,于是动手集成了一下,眼前一亮 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步.Swagger 让部署管理和使用功能强大的API从未如此简单. 费话少说,下面来看一下集成的过程,我用的环境是:jdk1.8+tomc

SpringMVC集成Bean Validation 1.1

1.集成Bean Validation 1.1到SpringMVC 1.1.项目搭建 所需的jar包: hibernate-validator-5.2.4.Final.jar validation-api-1.0.0.GA.jar slf4j-api-1.7.5.jar 首先添加hibernate validator 5依赖: Java代码   <dependency> <groupId>org.hibernate</groupId> <artifactId>