首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Spring 整合 XFire 輕鬆開發 WebService 完整指南

     編輯:Java 相關知識

Spring 作為當前最主流的 JavaEE 框架,雖然功能強大,但若直接使用 Spring-WS 開發 WebService,流程往往顯得繁瑣複雜。XFire 作為一個簡化 WebService 開發的開源專案,與 Spring 結合後,能大幅降低基於 Spring Framework 應用中 WebService 的開發門檻。本文將詳細介紹一種簡單實用的整合方案,採用 Spring 2.0 與 XFire 1.2.6 版本為例。

一、配置 XFire Servlet

首先需在 web.xml 中註冊 XFire 的核心 Servlet,並映射兩個常用的 URL 模式:

<servlet>
  <servlet-name>XFireServlet</servlet-name>
  <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>XFireServlet</servlet-name>
  <url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>XFireServlet</servlet-name>
  <url-pattern>/services/*</url-pattern>
</servlet-mapping>

二、配置 Spring 監聽器與上下文

Spring 的 ContextLoaderListener 是不可或缺的,同時需指定載入 XFire 內建配置與專案自定義配置:

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>
    classpath:org/codehaus/xfire/spring/xfire.xml,
    /WEB-INF/applicationContext.xml
  </param-value>
</context-param>
<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

三、定義服務介面與實作

遵循介面導向設計,先定義服務介面,再提供實作類:

// 服務介面
package org.ccsoft;
public interface HelloWS {
    String sayHello(String name);
}

// 服務實作
package org.ccsoft;
public class HelloWSImp implements HelloWS {
    public String sayHello(String name) {
        return "Hello " + name;
    }
}

四、Spring 容器中發布服務

在 applicationContext.xml 中將實作類註冊為 Bean,並透過 XFire 的 ServiceBean 將其暴露為 WebService,同時加入 WS-Addressing 處理器:

<beans xmlns="https://www.springframework.org/schema/beans"
       xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="https://www.springframework.org/schema/beans
       https://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

  <bean id="helloWS" class="org.ccsoft.HelloWSImp"/>

  <bean name="helloService" class="org.codehaus.xfire.spring.ServiceBean">
    <property name="serviceBean" ref="helloWS"/>
    <property name="serviceClass" value="org.ccsoft.HelloWS"/>
    <property name="inHandlers">
      <list>
        <ref bean="addressingHandler"/>
      </list>
    </property>
  </bean>

  <bean id="addressingHandler" class="org.codehaus.xfire.addressing.AddressingInHandler"/>
</beans>

完成上述配置後,啟動應用伺服器,即可透過 https://host:port/你的應用/services/helloService?wsdl 存取 WSDL 文檔,驗證服務是否成功發布。這種整合方式不僅配置清晰,更充分發揮了 Spring 的 IoC 優勢,讓 WebService 開發變得輕鬆高效。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved