Spring WS靜態WSDL

在前一章Spring-WS入門程序中,我們使用Spring WS Configuration自動生成了WSDL。 在這篇教程文章中,我們將演示如何使用Spring WS公開一個WSDL。

本教程是在Spring-WS入門程序教程的基礎上修改編寫的。

請參考以下步驟:

第1步: 按照Spring-WS入門程序章節的介紹,在leaveService項目下創建一個名稱爲:com.yiibai的包。

第2步:/WEB-INF/wsdl 子文件夾下創建一個WSDL文件,名稱爲: leave.wsdl

第3步: 更新/WEB-INF子文件夾下的文件:spring-ws-servlet.xml。 在這裏使用static-wsdl標籤(而不是dynamic-wsdl)。

第4步: 最後一步是創建所有源文件和配置文件的內容並導出應用程序,如下所述。

文件: /WEB-INF/wsdl/leave.wsdl -

<wsdl:definitions
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:schema="http://www.yiibai.com/hr/schemas"
    xmlns:tns="http://www.yiibai.com/hr/definitions"
    targetNamespace="http://www.yiibai.com/hr/definitions">

    <wsdl:types>
        <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <xsd:import namespace="http://www.yiibai.com/hr/schemas"
                schemaLocation="hr.xsd" />
        </xsd:schema>
    </wsdl:types>

    <wsdl:message name="LeaveRequest">
        <wsdl:part element="schema:LeaveRequest" name="LeaveRequest" />
    </wsdl:message>

    <wsdl:portType name="HumanResource">
        <wsdl:operation name="Leave">
            <wsdl:input message="tns:LeaveRequest" name="LeaveRequest" />
        </wsdl:operation>
    </wsdl:portType>

    <wsdl:binding name="HumanResourceBinding"
        type="tns:HumanResource">
        <soap:binding style="document"
            transport="http://schemas.xmlsoap.org/soap/http" />
        <wsdl:operation name="Leave">
            <soap:operation
                soapAction="http://www.yiibai.com/RequestLeave" />
            <wsdl:input name="LeaveRequest">
                <soap:body use="literal" />
            </wsdl:input>
        </wsdl:operation>
    </wsdl:binding>

    <wsdl:service name="HumanResourceService">
        <wsdl:port binding="tns:HumanResourceBinding"
            name="HumanResourcePort">
            <soap:address
                location="http://localhost:8080/leaveService/" />
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

文件: /WEB-INF/spring-ws-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:sws="http://www.springframework.org/schema/web-services"
    xsi:schemaLocation="http://www.springframework.org/schema/beans

   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/web-services
   http://www.springframework.org/schema/web-services/web-services-2.0.xsd
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:component-scan
        base-package="com.yiibai.hr" />
    <sws:annotation-driven />
    <sws:static-wsdl id="leave"
        location="/WEB-INF/wsdl/leave.wsdl" />
</beans>

運行項目

當完成創建源文件和配置文件,使用Maven構建應用程序。 右鍵單擊應用程序項目名稱,在彈出的菜單中選擇:Run As -> Maven Build… ,如下所示 -

Spring WS靜態WSDL

Eclipse啓動Tomcat服務器後, 嘗試訪問URL => http://localhost:8080/leaveService/leave.wsdl ,如果Spring Web應用程序一切正常,應該看到以下輸出結果 -

Spring WS靜態WSDL