熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Spring集成XFire開發Web Service

2022-06-13   來源: Java開源技術 

  Spring是目前最流行的JavaEE Framework但是使用Spring的SpringWS開發WebService卻十分繁瑣XFire是一個簡化WebService開發的開源項目通過Spring和XFire的結合可以大大簡化基於Spring Framework的應用中的Web Service開發

  Spring和XFire可以通過多種方式結合下文介紹的是筆者常用的一種簡單而實用的方法所用的Spring版本為XFire版本為

  配置XFire Servlet

  在webxml中加入如下配置

<servlet>
<servletname>XFireServlet</servletname>
 <servletclass>
orgcodehausxfirespringXFireSpringServlet
 </servletclass>
</servlet>
<servletmapping>
 <servletname>XFireServlet</servletname>
 <urlpattern>/servlet/XFireServlet/*</urlpattern>
</servletmapping>
<servletmapping>
 <servletname>XFireServlet</servletname>
 <urlpattern>/services/*</urlpattern>
</servletmapping>

  配置Spring的監聽器同基於spring的Web項目一樣Spring的監聽器是必不可少的

<contextparam>
 <paramname>contextConfigLocation</paramname>
 <paramvalue>
classpath:org/codehaus/xfire/spring/xfirexml
/WEBINF/applicationContextxml
 </paramvalue>
</contextparam>
<listener>
 <listenerclass>
orgspringframeworkwebcontextContextLoaderListener
 </listenerclass>
</listener>

  以下是完整的webxml配置文件

<?xml version= encoding=UTF?>
<webapp version=
 xmlns=http://javasuncom/xml/ns/jee
 xmlns:xsi=http://wwwworg//XMLSchemainstance
 xsi:schemaLocation=http://javasuncom/xml/ns/jee
 http://javasuncom/xml/ns/jee/webapp__xsd
 <contextparam>
<paramname>contextConfigLocation</paramname>
<paramvalue>
 classpath:org/codehaus/xfire/spring/xfirexml
 /WEBINF/applicationContextxml
</paramvalue>
 </contextparam>
<listener>
 <listenerclass>
orgspringframeworkwebcontextContextLoaderListener
 </listenerclass>
</listener>
<servlet>
 <servletname>XFireServlet</servletname>
 <servletclass>
orgcodehausxfirespringXFireSpringServlet
 </servletclass>
</servlet>
<servletmapping>
 <servletname>XFireServlet</servletname>
 <urlpattern>/servlet/XFireServlet/*</urlpattern>
</servletmapping>
<servletmapping>
 <servletname>XFireServlet</servletname>
 <urlpattern>/services/*</urlpattern>
</servletmapping>
</webapp>

  定義接口及實現服務

  定義接口這個接口中定義要通過WebService暴露的方法

package orgccsoft;

publicinterface HelloWS {
 public String sayHello(String sb);
}

  實現服務

package orgccsoft;

publicclass HelloWSImp implements HelloWS {
 public String sayHello(String sb) {
// TODO Autogenerated method stub
returnHello +sb;
 }
}

  配置服務

  將上文中實現的服務加入到spring的配置文件中

<?xml version= encoding=UTF?>
<beans xmlns=http://wwwspringframeworkorg/schema/beans
xmlns:xsi=http://wwwworg//XMLSchemainstance
xsi:schemaLocation=
http://wwwspringframeworkorg/schema/beans

http://wwwspringframeworkorg/schema/beans/springbeansxsd

<bean id=helloWS class=orgccsoftHelloWSImp/>
<bean name=helloService class=orgcodehausxfirespringServiceBean
<property name=serviceBean ref=helloWS/>
<property name=serviceClass value=orgccsoftHelloWS/>
<property name=inHandlers
 <list>
<ref bean=addressingHandler/>
 </list>
</property>
</bean>

<bean id=addressingHandler

class=orgcodehausxfireaddressingAddressingInHandler/>
</beans>


From:http://tw.wingwit.com/Article/program/Java/ky/201311/29182.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.