在學習之前,一直以為WebService就是一個工具,在兩個服務器之間建立一個通信,幫我們把需要傳輸的數據組織成規范的XML數據并發送到目的地,實際情況也確實是這樣的,不過更高級一點的是,XFire不但可以幫我們生成XML發送,而且可以在接收了xml之后還可以直接返回對象給我們用。
環境配置
1. jdk1.6
2. MyEclipse7.5
3. jar包全部使用MyEclipse自帶
步驟
我們先讓WebService跑起來,看看它到底長什么樣~~
1. 建立Web項目XFire
2. 配置web.xml
1)方法1:首先要配置一個contextConfigLocation,告訴Spring應該加載哪些配置文件
然后配置ContextLoaderListener和IntrospectorCleanupListener兩個監聽器
最后配置一個XFireSpringServlet就可以了
2)方法2:還有一種配置方式,就是使用Spring的DispatcherServlet來配置XFire監聽。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"version="2.4"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><display-name>XFireService</display-name><!-- begin Spring配置 --><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml,/WEB-INF/xfire-servlet.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><listener><listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class></listener><!-- end Spring配置 --><!-- begin XFire 配置 --><servlet><!-- 配合Spring容器中XFire一起工作的Servlet--><servlet-name>xfireServlet</servlet-name><servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class></servlet><servlet-mapping><servlet-name>xfireServlet</servlet-name><!--在這個URI下開放Web Service服務 頁面訪問方式為:http://localhost:8888/XFire/service--><url-pattern>/service/*</url-pattern></servlet-mapping><!-- end XFire 配置 --><!--這里提供一種使用Spring來配置XFire的方式頁面訪問方式為http://localhost:8888/XFire/HelloWorldService.ws?wsdl與xfire-servlet.xml中的urlMap配置相對應,兩種方式可以自由選擇--><servlet><servlet-name>xfire</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class></servlet><servlet-mapping><servlet-name>xfire</servlet-name><url-pattern>*.ws</url-pattern></servlet-mapping>
</web-app>
3. 配置/WEB-INFO/xfire-servlet.xml
1)方法1:這個文件用來配置具體的XFire服務,所有的服務都要在這個文件里聲明。指定服務的名字和具體實現的接口和類。
2)方法2:這里也可以使用Spring的SimpleUrlHandlerMapping來配置一個urlMap,與web.xml中的DispatcherServlet配合使用。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans><!-- 引入XFire預配置信息 --><import resource="classpath:org/codehaus/xfire/spring/xfire.xml" /> <!-- 定義訪問的url --><bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="urlMap"><map><entry key="/HelloWorldService.ws"><ref bean="HelloWorldService" /></entry><entry key="/DoAJobService.ws"><ref bean="DoAJobService" /></entry></map></pro