版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
WebServices技術(shù)架構(gòu)講師:王治國(guó)
WebServices開發(fā)系列講座
WebServices技術(shù)架構(gòu)JDK1.6直接支持WebServices使用axis實(shí)現(xiàn)webservice使用xfire實(shí)現(xiàn)webservicecxfWebServices案例(銀聯(lián)ATM存取系統(tǒng))
JavaCodeCallJavaobjxmlXmlJava<?xml…CallReturn=xxx…<?xml…CallArg1arg2…C++xmlXmlc++C++CallJDK6增加了對(duì)WS的支持importjavax.xml.ws.*;importjavax.jws.*;importjavax.jws.soap.*;@WebService(targetNamespace="")@SOAPBinding(style=SOAPBinding.Style.RPC)publicclassHelloService{ publicstaticvoidmain(String[]args) { Endpoint.publish("",newHelloService()); }
@WebMethod publicvoidsayHello() { System.out.println("hello"); }}?wsdl
wsimport-dc:\wsclient-sc:\wsclientpublicstaticvoidmain(String[]args){HelloServiceServicehss=newHelloServiceService();HelloServicehs=hss.getHelloServicePort();System.out.println(hs.getClass().getName());hs.sayHello();}
日程
Axis的安裝配置服務(wù)端開發(fā)即時(shí)發(fā)布定制發(fā)布WebServices的優(yōu)點(diǎn)WebServices技術(shù)SOAPWSDLUDDISOA(面向服務(wù)的架構(gòu))
Axis安裝配置
安裝JDK安裝并配置Tomcat從官方網(wǎng)站下載最新的Axis項(xiàng)目打包文件,并將webapps下axis目錄拷貝到Tomcat的webapps目錄下驗(yàn)證Axis的安裝瀏覽所發(fā)布的服務(wù)
服務(wù)器端開發(fā)
即時(shí)發(fā)布使用即時(shí)發(fā)布首先需要一個(gè)實(shí)現(xiàn)服務(wù)功能的Java源文件,將其擴(kuò)展名改為.jws(JavaWebService的縮寫),然后將該文件放到Tomcat下面的webapps\axis目錄下即可。但是JWS的web服務(wù)發(fā)布是一個(gè)很簡(jiǎn)單的Web服務(wù)發(fā)布方式,在頁(yè)面中你不能使用包,而且由于代碼是在運(yùn)行期被編譯的,所以在部署之后,你也很難找到錯(cuò)誤所在。
定制發(fā)布
編寫要發(fā)布為服務(wù)的java類編譯生成的class文件應(yīng)該放在Tomcat下的webapps\axis\WEB-INF\classes\下面編寫deploy.wsdd文件描述服務(wù)的名稱,入口等信息切換到命令行下,執(zhí)行
javaorg.apache.axis.client.AdminClient–p8085deploy.wsdd卸載服務(wù)找到undeploy.wsdd文件,修改其中的參數(shù)值運(yùn)行javaorg.apache.axis.client.AdminClientundeploy.wsdd注意:deploy.wsdd,undeploy.wsdd,批處理文件,可放任意目錄
服務(wù)器端開發(fā)WSDD的高級(jí)特性
Webservices的作用域范圍我們可以在wsdd文件中加入如下
<servicename="MyService"...><parametername="scope"value="value"/>...</service>Value的值可以為request,sesssion,applicationRequest:為每個(gè)請(qǐng)求創(chuàng)建一個(gè)服務(wù)對(duì)象Session:為每個(gè)調(diào)用這個(gè)WebServices的客戶端創(chuàng)建一個(gè)服務(wù)對(duì)象。Application:服務(wù)端創(chuàng)建一個(gè)服務(wù)對(duì)象,為所有的webserivces客戶端使用,不能存儲(chǔ)客戶端的一些個(gè)性化數(shù)據(jù)。調(diào)用web服務(wù)DLL動(dòng)態(tài)接口調(diào)用方式(DynamicInvocationInterface)動(dòng)態(tài)代理方式(DynamicProxy)靜態(tài)方式(Stubs)
DLL方式publicstaticvoidmain(String[]args){try{Stringendpoint="";//實(shí)例化一個(gè)服務(wù)對(duì)象serviceServiceservice=newService();
//創(chuàng)建一個(gè)空的調(diào)用對(duì)象Call,設(shè)置Call的操作名稱,目標(biāo)地址,傳入?yún)?shù)等等//執(zhí)行調(diào)用后即可得到返回的結(jié)果Callcall=(Call)service.createCall();call.setTargetEndpointAddress(new.URL(endpoint));call.setOperationName(newQName("","add3"));//CalltoaddParameter/setReturnTypeasdescribedinuser-guide.html//call.addParameter("testParam",//org.apache.axis.Constants.XSD_STRING,//javax.xml.rpc.ParameterMode.IN);//call.setReturnType(org.apache.axis.Constants.XSD_STRING);Integerret=(Integer)call.invoke(newObject[]{1,3});System.out.println(ret);}catch(Exceptione){System.err.println(e.toString());}}
動(dòng)態(tài)代理方式動(dòng)態(tài)代理需要一個(gè)本地的接口作為代理publicinterfaceITestDynameicProxyextendsRemote{publicStringgetMessage()throwsRemoteException;}publicstaticvoidmain(String[]args)throwsException{StringwsdlUrl="";StringnameSpaceUri="";StringserviceName="Test1Service";StringportName="Test1";ServiceFactoryserviceFactory=ServiceFactory.newInstance();Serviceservice=serviceFactory.createService(newURL(wsdlUrl),newQName(nameSpaceUri,serviceName));ITestDynameicProxyproxy=(ITestDynameicProxy)service.getPort(newQName(nameSpaceUri,portName),ITestDynameicProxy.class);System.out.println(proxy.getMessage());}通過輸入wsdl地址,命名空間地址和服務(wù)名,用服務(wù)工廠創(chuàng)建出一個(gè)服務(wù)實(shí)例,再通過設(shè)置端口名得到一個(gè)服務(wù)類型的服務(wù)代理對(duì)象,通過該代理,就可以直接訪問web服務(wù)了。
靜態(tài)方式按常規(guī)方式發(fā)布一個(gè)webservice得到wsdl文件通過web頁(yè)面直接另存為通過Java2WSDL工具類生成(javaorg.apache.axis.wsdl.Java2WSDL-odemo1.wsdl-l-nhttp:///test.Demo)利用WSDL2Java工具類生成客戶端調(diào)用代碼(javaorg.apache.axis.wsdl.WSDL2Javademo.wsdl-pclient)在生成的代碼基礎(chǔ)上,進(jìn)行客戶端的調(diào)用 publicstaticvoidmain(String[]args)throwsServiceException,RemoteException{ DemoServiceLocatordemoService=newDemoServiceLocator(); Demodemo=demoService.getdemo(); System.out.println(demo.getMessage()); }
XFire服務(wù)器端參考開發(fā)指南手動(dòng)完成使用IDE直接生成客戶端(類似Axis,有三種客戶端調(diào)用的方式)
DDL方式publicstaticvoidmain(String[]args)throwsMalformedURLException,Exception{Clientclient=newClient(newURL(""));Object[]results=client.invoke("example",newObject[]{"張孝祥"});System.out.println((String)results[0]);}
動(dòng)態(tài)代理方式publicstaticvoidmain(String[]args){//1-制造一個(gè)service對(duì)象,來利用webservice所提供的服務(wù)Serviceservice=newObjectServiceFactory().create(firstPortType.class);//2-制作一個(gè)XFire的代理工廠,有了代理之后,調(diào)用webservice的方法就好像是在本地進(jìn)行調(diào)用了XFireProxyFactoryfactory=newXFireProxyFactory(XFireFactory.newInstance().getXFire());//3-獲取webservice提供服務(wù)的網(wǎng)址StringsayHelloURL="";//4-開始使用webservicetry{firstPortTypetest=(firstPortType)factory.create(service,sayHelloURL);Stringstr=test.getVersion();System.out.println(str);}catch(Exceptione){e.printStackTrace();}}
使用WsGen類生成,具體方法查看用戶指南。我們直接使用就可以public
static
voidmain(String[]
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 河北省衡水市武強(qiáng)中學(xué)2024-2025學(xué)年高一上學(xué)期期中考試數(shù)學(xué)試題(含答案)
- 2024年度云南省高校教師資格證之高等教育學(xué)自我檢測(cè)試卷A卷附答案
- 數(shù)據(jù)中心建設(shè)方案
- 贛南師范大學(xué)《三維動(dòng)畫制作》2022-2023學(xué)年第一學(xué)期期末試卷
- 阜陽師范大學(xué)《通信工程專業(yè)導(dǎo)論》2021-2022學(xué)年第一學(xué)期期末試卷
- 人教版小學(xué)四年級(jí)體育教案上冊(cè)
- 福建師范大學(xué)《通信一》2021-2022學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《民事訴訟法》2023-2024學(xué)年第一學(xué)期期末試卷
- 檔案利用效果登記表
- 2024年嘉峪關(guān)客運(yùn)從業(yè)資格證考試模擬試題
- T-CPQS C010-2024 鑒賞收藏用潮流玩偶及類似用途產(chǎn)品
- 羅蘭貝格-正泰集團(tuán)品牌戰(zhàn)略項(xiàng)目-品牌戰(zhàn)略設(shè)計(jì)與高階落地建議報(bào)告-20180627a
- 2024砍伐樹木合同書
- 2024成都中考數(shù)學(xué)二輪重點(diǎn)專題研究 實(shí)數(shù)的相關(guān)概念(課件)
- 道路開口施工方案6
- 國(guó)開作業(yè)《公共關(guān)系學(xué)》實(shí)訓(xùn)項(xiàng)目1:公關(guān)三要素分析(六選一)參考552
- 大學(xué)勞動(dòng)教育(高等院校勞動(dòng)教育課程)全套教學(xué)課件
- 人教版七級(jí)下《第五章相交線與平行線》單元測(cè)試題含試卷分析答題技巧
- 二年級(jí)上冊(cè)語文第四單元《日月潭》教學(xué)課件 第1課時(shí)
- MOOC 英語語法與寫作-暨南大學(xué) 中國(guó)大學(xué)慕課答案
- 婦科腹腔鏡手術(shù)術(shù)前宣教
評(píng)論
0/150
提交評(píng)論