運行環境:JBOXX 4.04 、 Tomcat <st1:chsdate w:st="on" isrocdate="False" islunardate="False" day="30" month="12" year="1899">5.3.9</st1:chsdate>
開發工具:Eclipse3.1 + MyEclipse 4.0
1. 利用xFire發佈WebService<o:p></o:p>
對於一般的接口方法,即方法的返回類型或參數不是List或Map中存放對象的方法,則只需要兩步簡單的配置即可。
一、配置web.xml
添加一個servlet
- <servlet>
- <servlet-name>webservice</servlet-name>
- <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>webservice</servlet-name>
- <url-pattern>/servlet/XFireServlet/*</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>webservice</servlet-name>
- <url-pattern>/services/*</url-pattern>
- </servlet-mapping>
一、建立services.xml
在源代碼包src(也可能是其它的名稱)下建立META-INF/xfire文件夾,並在下面建立services.xml文件。
- <!-- START SNIPPET: services -->
- <beans xmlns="http://xfire.codehaus.org/config/1.0">
- <service >
- <name>helloWorld</name>
- <namespace>http://6.1.8.16:8080/xfireWebService/services/helloWorld</namespace>
- <serviceClass>com.excellence.webservice.test.helloWorld</serviceClass>
- <implementationClass>com.excellence.webservice.test.HelloWorldImpl</implementationClass>
- </service>
- </beans>
- <!-- END SNIPPET: services -->
一 name 元素:表示該webService的名稱<o:p></o:p>
二 namespace 元素:表示該webService的命名空間<o:p></o:p>
三 serviceClass 元素:表示該webService的接口<o:p></o:p>
四 implementationClass 元素:表示該webService的實現類<o:p></o:p>
<o:p></o:p>
對!就是這麼簡單,就可以啦。
<o:p></o:p>
如果返回類型是List或Map,並且裏面存放的是自定義類的話,則需要增加一個對於服務接口的配置文件。該文件的命名規則是 接口文件名.aegis.xml。例如接口是HelloWorld.java的話,則此配置文件命名爲HelloWorld.aegis.xml。<o:p></o:p>
- <?xml version="1.0" encoding="UTF-8"?>
- <mappings>
- <mapping >
- <method name="getUsers">
- <return-type componentType="com.excellence.webservice.test.User"/>
- </method>
- </mapping>
- </mappings>
getUsers方法返回類型是List,裏面裝的User對象。對於這種類型的方法,在配置文件中描述了它的返回值類型。<o:p></o:p>
如果返回的類型是Map的話,做法和List一樣。但定義的類型,是Map中的Value部分,並且這樣的話,Map中Value所存放的對象就必須全部是同一種類啦。<o:p></o:p>