Springws 简明教程

Spring WS - Static WSDL

在上一章 Spring -WS - First Application 中,我们已使用 Spring WS 配置自动生成了 WSDL。本例中,我们将演示如何使用 Spring WS 公开现有的 WSDL。

In the previous chapter Spring -WS - First Application, we have generated WSDL automatically using the Spring WS Configuration. In this case, we will display how to expose the existing WSDL using the Spring WS.

Step

Description

1

Create a project with a name leaveService under a package com.tutorialspoint as explained in the Spring WS - First Application chapter.

2

Create a WSDL leave.wsdl under the /WEB-INF/wsdl sub-folder.

3

Update spring-ws-servlet.xml under the /WEB-INF sub-folder. We are using the static-wsdl tag here instead of the dynamic-wsdl.

4

The final step is to create content of all source and configuration files and export the application as explained below.

/WEB-INF/spring-ws-servlet.xml

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

   <wsdl:types>
      <xsd:schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
         <xsd:import namespace = "http://tutorialspoint.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://mycompany.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.tutorialspoint.hr"/>
   <sws:annotation-driven/>
   <sws:static-wsdl id = "leave" location = "/WEB-INF/wsdl/leave.wsdl"/>
</beans>

Run the Project

创建完源和配置文件后,我们应该导出应用程序。在应用程序上单击右键,使用导出 → WAR 文件选项,然后在 Tomcat 的 webapps 文件夹中保存 leaveService.war 文件。

Once we are done with creating source and configuration files, we should export the application. Right click on the application, use Export → WAR File option and save your leaveService.war file in Tomcat’s webapps folder.

现在,启动 Tomcat 服务器,并确保我们可以使用标准浏览器访问 webapps 文件夹中的其他网页。尝试访问 URL – [role="bare"] [role="bare"]http://localhost:8080/leaveService/leave.wsdl ,如果 Spring Web 应用程序一切正常,我们会看到以下屏幕。

Now, start the Tomcat server and ensure that we can access other webpages from the webapps folder using a standard browser. Try to access the URL – [role="bare"]http://localhost:8080/leaveService/leave.wsdl, if everything is ok with the Spring Web Application, we will see the following screen.

first application result