——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術,交流工作經驗,分享JAVA帶來的快樂!本網站部分轉載文章,如果有版權問題請與我聯系。
首先在已完成的項目中加入webservice支持,如圖
下一步
接下來選擇xfire包
finish 完成。
這樣在你的項目中會產生xfire的工具包,這里完全可以自己將所需要的包放入lib下。
由于我的原始項目是ssh的,這里就不再說了,接下來進行xfire配置。
首先web.xml
接下來在src下面建立xfire-servlet.xml
1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 3 "http://www.springframework.org/dtd/spring-beans.dtd"> 4<beans> 5 <!-- 引入XFire預配置信息 --> 6 <import resource="classpath:org/codehaus/xfire/spring/xfire.xml" /> 7 <!-- 定義訪問的url --> 8 <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 9 <property name="urlMap"> 10 <map> 11 <entry key="/webservices.ws"> 12 <ref bean="webservices" /> 13 </entry> 14 </map> 15 </property> 16 </bean> 17 18 <!-- 使用XFire導出器 --> 19 <bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter" lazy-init="false" abstract="true"> 20 <!-- 引用xfire.xml中定義的工廠 --> 21 <property name="serviceFactory" ref="xfire.serviceFactory" /> 22 <!-- 引用xfire.xml中的xfire實例 --> 23 <property name="xfire" ref="xfire" /> 24 </bean> 25 26 <bean id="webservices" parent="baseWebService"> 27 <!-- 業務服務bean --> 28 <property name="serviceBean" ref="webservicesService" /> 29 <!-- 業務服務bean的窄接口類 --> 30 <property name="serviceClass" value="com.seavision.huayi2.service.IWebservice" /> 31 </bean> 32</beans> 33
這里說說為什么定義窄接口,原因xfire會導出spring整個接口,不能控制那些暴露給用戶,這樣做就不會將所有接口暴露給用戶。
下來說說,在項目下生成的services.xml,這個里面是按照spring2.0的命名空間配置的,所以改寫這個xml
1<?xml version="1.0" encoding="UTF-8"?> 2<beans> 3</beans>
這樣就不會出錯了。
這樣啟動Tomcat,如果啟動時拋以下異常,則刪掉發布后lib中的spring1.2版本,原因與spring2沖突
org.xml.sax.SAXParseException: Document root element "beans", must match DOCTYPE root "null"還有一些就不多說了。
服務器啟動后,在項目名后面鍵入/services 則出現wsdl,另存為即可。
看看我的spring配置文件 ,和上面的xfire-servlet.xml對應起來。
service即實現類如下,此代碼僅為本人項目代碼,僅供參考,切勿抄送
實現類
dao層就不說了,到此完畢。
Powered by: BlogJava Copyright © rogerfan