HessianとSpringの統合使用


最近、サードパーティのWebServiceサービスにアクセスするプロジェクトがあります.図が便利なので、簡単にHessianでやり取りしようとしています.
次の手順に従います.
1.WebService側でクライアントにアクセスするパブリックサービスインタフェース(例:CommentHessianService)を提供し、対応するクライアントもこれ(CommentHessianService)パブリックサービスインタフェースを提供する.一般的には、サービス側のCommentHessianServiceをクライアントに直接コピーします.このCommentHessianServiceパブリックサービスインタフェースがあれば,サービスインタフェースの具体的な実装方法を実装する.(CommentHessianServiceImpl).
2.公共サービスインタフェースを定義した後、サービス側で相応の構成を行う.たとえば、対応するサービスのプロファイルがあります.
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対応サービスのプロファイル: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> 

クライアントの構成は比較的簡単で、サービス側の構成を参照します.