版權(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ù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頁面直接另存為通過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)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年生態(tài)保護(hù)區(qū)物業(yè)管理與生態(tài)旅游開發(fā)合同3篇
- 2025版酒店客房預(yù)訂平臺(tái)合作推廣合同3篇
- 祖國(guó)真奇妙主題課程設(shè)計(jì)
- 2024年項(xiàng)目制臨時(shí)工合同3篇
- 2025版窗簾電商物流承包合作協(xié)議書3篇
- 粽子國(guó)畫課程設(shè)計(jì)
- 濟(jì)寧裝修課程設(shè)計(jì)
- 2025至2030年中國(guó)風(fēng)速報(bào)警儀行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025版智能控制管井降水施工協(xié)議2篇
- 2025版電競(jìng)俱樂部承包經(jīng)營(yíng)與管理合同3篇
- 2024年度技術(shù)咨詢合同:某科技公司與某政府機(jī)構(gòu)關(guān)于技術(shù)咨詢服務(wù)的協(xié)議(2024版)2篇
- 醫(yī)療科研配色
- 2024年保安員資格考試題目及答案(共60題)
- 期末復(fù)習(xí)基礎(chǔ)卷(試題)-2024-2025學(xué)年一年級(jí)上冊(cè)數(shù)學(xué)人教版
- 第十章 專題 帶電粒子在電場(chǎng)中運(yùn)動(dòng)的綜合問題 集體備課說課稿模板 -2023-2024學(xué)年高二上學(xué)期物理人教版(2019)必修第三冊(cè)
- 高中數(shù)學(xué)64數(shù)列求和省公開課獲獎(jiǎng)?wù)n件市賽課比賽一等獎(jiǎng)?wù)n件
- 《基于單片機(jī)的送餐機(jī)器人定位功能設(shè)計(jì)》9800字(論文)
- 產(chǎn)品經(jīng)理100道面試題
- 胡頹子育苗技術(shù)規(guī)程-地方標(biāo)準(zhǔn)修訂說明
- 2024年度施工員(市政工程)專業(yè)技能知識(shí)考試題庫及答案(共四套)
- 2024年金融理財(cái)-金融理財(cái)師(AFP)考試近5年真題附答案
評(píng)論
0/150
提交評(píng)論