Hessian与Spring的整合使用

最近有个项目中需要访问第三方的 WebService 服务,因为图方便,简单就打算用 Hessian 来 交互。
这里有以下步骤:
1. 在 WebService 端要提供给客户端访问的 公共服务接口(例如: CommentHessianService),相应的客户端 也要这个(CommentHessianService)公共服务接口。 一般的都把 服务端的CommentHessianService直接 copy丢到 客户端。 有了这个 CommentHessianService 公共服务接口,下面应该要实现具体实现服务接口里面的方法。(CommentHessianServiceImpl)。

2.公共服务接口定义好后,在服务端做好相应的配置。例如有一个对应的 Service的配置文件:
context-comment-service.xml


<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"
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-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

<context:annotation-config />

<bean id="commentHessianServiceImpl"class="com.service.impl.CommentHessianServiceImpl"/>
</beans>


hessian对应的 service的配置文件: remoting-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

<!-- 使用HessianServiceExporter 将普通bean导出成Hessian服务-->
<bean name="/hessianCommentService"
class="org.springframework.remoting.caucho.HessianServiceExporter">
<!-- 需要导出的目标bean-->
<property name="service" ref="commentHessianServiceImpl" />
<!-- Hessian服务的接口-->
<property name="serviceInterface" value="com.service.CommentHessianService" />
</bean>
</beans>


web.xml的配置:
<servlet>
<display-name>spring_servlet</display-name>
<servlet-name>springServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/com/config/spring/*.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springServlet</servlet-name>
<url-pattern>/httpTest/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>springServlet</servlet-name>
<url-pattern>/hessian/*</url-pattern>
</servlet-mapping>


3. 都配置好后,运行工程,测试Hessain是否正常运行: http://localhost/test/hessian/hessianCommentService 如果页面提示 405 则成功了。

4. client的Hessian配置:(上面提到有公共服务接口 CommentHessianService,直接copy到 客户端的工程目录下) 我这边对应的配置文件内容是: context-member-service.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- DataSource -->

<bean id="base-memberService"
class="com.member.impl.MemberServiceImpl">

<property name="hessianService">
<ref bean="mHessianClient" />
</property>

<property name="memberDAO">
<ref bean="base-memberDAO" />
</property>


</bean>


<bean id="myHessianClient"
class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<property name="serviceUrl">
<value>http://yourHost/test/hessian/hessianCommentService</value>
</property>
<property name="serviceInterface">
<value>com.member.CommentHessianService</value>
</property>
<!--<property name="overloadEnabled" value="true"></property>
反向代理设置
<property name="chunkedPost" value="false"/>
--></bean>
</beans>


客户端的配置比较简单,引用对服务端的配置。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值