Webservice開(kāi)發(fā)
1. 發(fā)布環(huán)境:win2000 Professional + JDK1.4.2_03 + Tomcat5
2. 下載Axis,解壓縮,將其webapps目錄下的axis拷貝到tomcat的webapps目錄下,進(jìn)行訪問(wèn)測(cè)試,http://localhost:8080/axis/ 出現(xiàn)正常頁(yè)面即可。
3. 下載包含wtp的Eclipse,解壓縮
4. 新建動(dòng)態(tài)Web Project,比如ca3,將axis下的jar包導(dǎo)入該項(xiàng)目的編譯環(huán)境里,在JavaSource中寫java程序比如caSynrochnized,寫好后,在上面點(diǎn)右鍵,選擇Create Web Service按照默認(rèn)設(shè)置,即可生成Web Service
在tomcat下部署
5. 生成后,將eclipse下ca3\.deployables下的ca3目錄拷貝到tomcat的webapps目錄下
6. 設(shè)置axis的環(huán)境變量,如下
a) AXIS_HOME E:\Tomcat5.0\webapps\axis
b) AXIS_LIB %AXIS_HOME%\WEB-INF\lib
c) Classpath .;%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\log4j-1.2.8.jar; %AXIS_LIB%\wsdl4j-1.5.1.jar;
7. 在E:\Tomcat 5.0\webapps\ca3\WEB-INF\caSynrochnizedService\com\hshz\ca找到deploy.wsdd文件,在dos命令行狀態(tài)下進(jìn)入上面目錄,運(yùn)行以下命令進(jìn)行發(fā)布 java org.apache.axis.client.AdminClient deploy.wsdd
8. 在IE中輸入http://localhost:8080/ca3/services可以看到已發(fā)布的webservice
在E:\Tomcat 5.0\webapps\ca3\wsdl目錄下找到wsdl文件,最后幾行比如<wsdlsoap:address location="http://localhost:8080/ca3/services/caSynrochnized"/>其中的location才是web Service相互調(diào)用的地址,另外localhost改為自己的IP地址。
Webservice的重新部署
對(duì)于已發(fā)布的服務(wù),修改接口后,直接將發(fā)布目錄下的wsdl,以及wsdd,classes,service文件夾拷貝到tomcat相應(yīng)目錄下,不用重新發(fā)布即可。可先在瀏覽器中輸入地址/services進(jìn)行查看。
部署時(shí)可能遇到的問(wèn)題
1) 在dos窗口下執(zhí)行java org.apache.axis.client.AdminClient deploy.wsdd命令時(shí),出現(xiàn)404錯(cuò)誤,此時(shí)可能你的tomcat服務(wù)器沒(méi)有啟動(dòng),請(qǐng)先啟動(dòng)tomcat服務(wù)器。
2) 不同系統(tǒng)安裝相同的jdk版本,發(fā)布webservice服務(wù)時(shí),可能會(huì)出現(xiàn)unsupportedVersionException,如果在IE下敲入http://localhost:8080/java-oa/services,發(fā)現(xiàn)服務(wù)已經(jīng)發(fā)布成功,并且點(diǎn)wsdl鏈接能夠顯示wsdl文件,則此錯(cuò)誤可以忽略
3) 如果發(fā)現(xiàn)在啟動(dòng)tomcat時(shí),出現(xiàn)server-config.wsdd文件需要type,handle一類的錯(cuò)誤,則有可能你的應(yīng)用下存在gnujaxp.jar,因?yàn)檫@個(gè)jar包會(huì)與axis所需要的jar包相沖突,將gnujaxp.jar拷貝到common\lib下即可。
4) 如果webservice中的方法名字或者參數(shù)名或者參數(shù)數(shù)目,更改后需要重新發(fā)布webservice
提供webservice中的程序在方法名,參數(shù)不變的情況下,重新編譯后只需要覆蓋原來(lái)的類即可。