版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
WebServices技術(shù)架構(gòu)講師:王治國
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增加了對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ā)布首先需要一個實(shí)現(xiàn)服務(wù)功能的Java源文件,將其擴(kuò)展名改為.jws(JavaWebService的縮寫),然后將該文件放到Tomcat下面的webapps\axis目錄下即可。但是JWS的web服務(wù)發(fā)布是一個很簡單的Web服務(wù)發(fā)布方式,在頁面中你不能使用包,而且由于代碼是在運(yùn)行期被編譯的,所以在部署之后,你也很難找到錯誤所在。
定制發(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的高級特性
Webservices的作用域范圍我們可以在wsdd文件中加入如下
<servicename="MyService"...><parametername="scope"value="value"/>...</service>Value的值可以為request,sesssion,applicationRequest:為每個請求創(chuàng)建一個服務(wù)對象Session:為每個調(diào)用這個WebServices的客戶端創(chuàng)建一個服務(wù)對象。Application:服務(wù)端創(chuàng)建一個服務(wù)對象,為所有的webserivces客戶端使用,不能存儲客戶端的一些個性化數(shù)據(jù)。調(diào)用web服務(wù)DLL動態(tài)接口調(diào)用方式(DynamicInvocationInterface)動態(tài)代理方式(DynamicProxy)靜態(tài)方式(Stubs)
DLL方式publicstaticvoidmain(String[]args){try{Stringendpoint="";//實(shí)例化一個服務(wù)對象serviceServiceservice=newService();
//創(chuàng)建一個空的調(diào)用對象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());}}
動態(tài)代理方式動態(tài)代理需要一個本地的接口作為代理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)建出一個服務(wù)實(shí)例,再通過設(shè)置端口名得到一個服務(wù)類型的服務(wù)代理對象,通過該代理,就可以直接訪問web服務(wù)了。
靜態(tài)方式按常規(guī)方式發(fā)布一個webservice得到wsdl文件通過web頁面直接另存為通過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ā)指南手動完成使用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]);}
動態(tài)代理方式publicstaticvoidmain(String[]args){//1-制造一個service對象,來利用webservice所提供的服務(wù)Serviceservice=newObjectServiceFactory().create(firstPortType.class);//2-制作一個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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《游泳服務(wù)與管理》課件
- 《電力企業(yè)流程管理》課件
- 《電磁輻射及預(yù)防》課件
- 2024年高考生物一輪復(fù)習(xí)必修二第五單元遺傳的基本規(guī)律試題
- 單位管理制度集合大合集【人力資源管理】十篇
- 單位管理制度集粹匯編職員管理篇十篇
- 單位管理制度分享匯編【員工管理】十篇
- 單位管理制度分享大全【人員管理】十篇
- 單位管理制度呈現(xiàn)合集【員工管理】十篇
- 《團(tuán)隊(duì)建設(shè)與發(fā)展》課件
- 《論語》中的人生智慧與自我管理學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024年金融理財(cái)-金融理財(cái)師(AFP)考試近5年真題附答案
- 2022版義務(wù)教育物理課程標(biāo)準(zhǔn)
- 數(shù)字資產(chǎn)管理與優(yōu)化考核試卷
- 期末測試-2024-2025學(xué)年語文四年級上冊統(tǒng)編版
- 教案-“枚舉法”信息技術(shù)(信息科技)
- 2024年內(nèi)部審計(jì)年度工作計(jì)劃范文(六篇)
- 四川省成都市2021-2022學(xué)年物理高一下期末學(xué)業(yè)質(zhì)量監(jiān)測模擬試題含解析
- 光伏發(fā)電系統(tǒng)租賃合同范本
- 新教科版六年級上冊科學(xué)全冊知識點(diǎn)(期末總復(fù)習(xí)資料)
- 綠色建筑工程監(jiān)理實(shí)施細(xì)則
評論
0/150
提交評論