使用Spring+Xfire构建WebService

    技术2022-05-11  80

    (1)编写发布接口ITrainTimeServiceRemote(2)编写实现类TrainTimeServiceImpl(3)编写发布配置文件application-webservice.xml     <beans> <import resource="classpath:org/codehaus/xfire/spring/xfire.xml" /> <bean id="baseWebService"  class="org.codehaus.xfire.spring.remoting.XFireExporter"  lazy-init="false" abstract="true">  <property name="serviceFactory" ref="xfire.serviceFactory" />  <property name="xfire" ref="xfire" /> </bean>        <bean id="traintimeService" parent="baseWebService">  <property name="serviceBean" ref="traintimeService_implement" />  <property name="serviceClass"   value="com.bjjdsy.ky.zl.service.ITrainTimeServiceRemote" /> </bean> <bean id="traintimeService_implement"  class="com.bjjdsy.ky.zl.service.TrainTimeServiceImpl">  <property name="traintimeDao">   <ref bean="TrainTimeDAO" />  </property> </bean>(4)如果有方法返回复杂类型,则需要辨析配置文件,未知和接口文件放在同一包下     ITrainTimeServiceRemote.aegis.xml      <mappings>       <mapping>          <method name="getTrainTimeByTrainCode">            <return-type componentType="com.bjjdsy.ky.zl.domain.ZlTrainTimeTab"/>          </method>       </mapping>      </mappings>

     (5)web.xml配置       <servlet>          <servlet-name>XFireServlet</servlet-name>          <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>          <load-on-startup>0</load-on-startup>       </servlet>       <servlet-mapping>          <servlet-name>XFireServlet</servlet-name>          <url-pattern>/services/*</url-pattern>       </servlet-mapping>

    调用:

    <bean id="trainTimeService" class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean">    <property name="serviceClass">         <value>com.bjjdsy.ky.zl.service.ITrainTimeServiceRemote</alue>    </property>    <property name="wsdlDocumentUrl">           <value>http://10.100.2.12/KY_ZL_BASE/services/ITrainTimeServiceRemote?wsdl</value>    </property></bean>

    此后,就可以当作本地的trainTimeService来使用接口方法了        


    最新回复(0)