開(kāi)發(fā)WebService應(yīng)用小結(jié)_第1頁(yè)
開(kāi)發(fā)WebService應(yīng)用小結(jié)_第2頁(yè)
開(kāi)發(fā)WebService應(yīng)用小結(jié)_第3頁(yè)
開(kāi)發(fā)WebService應(yīng)用小結(jié)_第4頁(yè)
開(kāi)發(fā)WebService應(yīng)用小結(jié)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Axis開(kāi)發(fā)WebService應(yīng)用小結(jié)1. 開(kāi)發(fā)環(huán)境準(zhǔn)備使用軟件版本:,Weblogic8.1,axis1.4,Eclipse3.2。JDK、Weblogic、Eclipse3.2準(zhǔn)備過(guò)程略。下載axis1.4bin.zip,解壓后將lib文件夾中的jar包拷貝至/web-inf/lib目錄中,還需要包括activation.jar和mail.jar,分別下載和,axis需要用到這2個(gè)jar中的類(lèi)。如圖:2. Axis配置新建Web Project,在web.xml文件中添加如下配置加入axis:<!- 添加Axis1.4Servlet -><servlet> <

2、;servlet-name>AxisServlet</servlet-name> <servlet-class></servlet-class> <load-on-startup>2</load-on-startup> </servlet><!- Axis1.4的發(fā)布路徑 -><servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-

3、pattern></servlet-mapping> 在/web-inf/目錄下添加webServices.xml(可以指定其他目錄,該文件為Axis與Spring集成所需要的文件,為spring的bean配置文件),在web.xml文件中加入以下配置將該文件加入到工程中去:<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/webServices.xml</param-value></contex

4、t-param>以上兩個(gè)配置可以在已經(jīng)存在的web project中添加,加入以上配置后就可以使用Axis開(kāi)發(fā)WebServices程序了。3. Axis服務(wù)端開(kāi)發(fā)為WebServices服務(wù)編寫(xiě)接口類(lèi)及其實(shí)現(xiàn)類(lèi),樣例接口類(lèi)如下:public interface ISayHello public String sayHello(String name);public class SayHelloWebService implements ISayHello public String sayHello(String name)String rs = " Hello my fri

5、end "+name+" ! " System.out.println();return rs;在/web-inf/目錄下新建server-config.wsdd文件部署WebServices服務(wù):<deployment xmlns="/axis/wsdd/" xmlns:java="/axis/wsdd/providers/java"><handler name="LocalResponder" type=

6、"java:org.apache.axis.transport.local.LocalResponder"/><handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/><service name="SayHello" provider="java:RPC"><parameter name="wsdlTargetNamespace" value

7、="urn:soap.axisspring"/><parameter name="className" value="com.tfhz.szds.webservice.test.SayHelloWebService" /><parameter name="allowedMethods" value="*" /></service><transport name="http"> <requestFlow> <

8、;handler type="URLMapper"/> <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/> </requestFlow><parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/> <parameter name="qs:wsdl" value=&q

9、uot;org.apache.axis.transport.http.QSWSDLHandler"/> <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/></transport> <transport name="local"> <responseFlow> <handler type="LocalResponder"/>

10、</responseFlow> </transport></deployment>其中紅字的部分是WebServices服務(wù)的配置部分,該文檔解釋如下:a. deployment為文檔根節(jié)點(diǎn),必須包括該節(jié)點(diǎn),其中后面的屬性不能更改。b. 配置handler節(jié)點(diǎn),使用handler可以實(shí)現(xiàn)類(lèi)似filter的功能,此處用到URLMapper和LocalResponder兩個(gè)handlerc. 每個(gè)WebServices服務(wù)都需要配置一個(gè)Service節(jié)點(diǎn),name屬性配置服務(wù)名稱(chēng),provider屬性配置服務(wù)訪問(wèn)方式,本例中是采用RPC方式;子節(jié)點(diǎn)paramet

11、er配置service的參數(shù),參數(shù)wsdlTargetNamespace配置名稱(chēng)空間,參數(shù)className配置實(shí)現(xiàn)服務(wù)類(lèi),參數(shù)allowedMethods表示那些方法是WebServices服務(wù)可以調(diào)用的方法,“*”表示所有方法,可以配置多個(gè)方法,用“,”分隔。Service可以通過(guò)增加requestFlow節(jié)點(diǎn)引用某個(gè)handler,在service執(zhí)行之前會(huì)先執(zhí)行handler的invoke方法,可以通過(guò)handler實(shí)現(xiàn)一些數(shù)據(jù)驗(yàn)證或者訪問(wèn)合法性的校驗(yàn)。d. Transport節(jié)點(diǎn)定義了服務(wù)端的傳輸方式,本例中定義了兩個(gè)transport,http和local。4. Axis客戶(hù)端開(kāi)發(fā)

12、public class WebServiceClientTest public static void main(String args) try /WebService服務(wù)地址String nameSpaceUrl = "18:7001/WebRoot/services/SayHello"/開(kāi)始創(chuàng)建調(diào)用對(duì)象Service service = new Service();Call call = null;call = (Call)service.createCall();/* * 開(kāi)始調(diào)用SayHello服務(wù) */WebServicee

13、服務(wù)調(diào)用地址call.setTargetEndpointAddress(new .URL(nameSpaceUrl);/WebServicee服務(wù)調(diào)用方法名稱(chēng)call.setOperationName("sayHello");/WebServicee服務(wù)調(diào)用方法參數(shù)call.addParameter("name", XMLType.XSD_STRING, ParameterMode.IN);/WebServicee服務(wù)調(diào)用方法返回值類(lèi)型call.setReturnType(XMLType.XSD_STRING);String reString = (St

14、ring)call.invoke(new Object"liwei");System.out.println(" WebService 服務(wù)調(diào)用成功 result= "+reString); catch (Exception e) e.printStackTrace();構(gòu)造如上代碼,運(yùn)行main方法console中打印出: WebService 服務(wù)調(diào)用成功 result= Hello my friend liwei !Here is WebService .注意:根據(jù)以上步驟開(kāi)發(fā)webservice,運(yùn)行客戶(hù)端時(shí)可能會(huì)報(bào)以下錯(cuò)誤:以下是從網(wǎng)上找到的解

15、決辦法:How to resolve:WebLogic 8.1WebLogic 8.1 ships with webservices.jar that conflicts with Axis' saaj.jar and prevents Axis 1.2 from working right out of the box. This conflict exists because WebLogic uses an older definition of javax.xml.soap.* package from Java Web Services Developer Pack Vers

16、ion 1.0, whereas Axis uses a newer revision from J2EE 1.4.However, there are two alternative configuration changes that enable Axis based web services to run on Weblogic 8.1.* In a webapp containing Axis, set <prefer-web-inf-classes> element in WEB-INF/weblogic.xml to true. An example of weblo

17、gic.xml is shown below:<weblogic-web-app><container-descriptor><prefer-web-inf-classes>true</prefer-web-inf-classes></container-descriptor></weblogic-web-app>If set to true, the <prefer-web-inf-classes> element will force WebLogic's classloader to load classes located in the WEB-INF directory of a web application in pref

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論