webservice接口實(shí)現(xiàn)過程_第1頁
webservice接口實(shí)現(xiàn)過程_第2頁
webservice接口實(shí)現(xiàn)過程_第3頁
webservice接口實(shí)現(xiàn)過程_第4頁
webservice接口實(shí)現(xiàn)過程_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、說明:該文檔以電子路演系統(tǒng)與ecm的webservice集成為例創(chuàng)建服務(wù)端一、 搭建測(cè)試環(huán)境1 新建web工程 oarsinterface,引入jar包 將“e:zhaodongmeiecmoarsandecmintegrationinterfacecode測(cè)試代碼webservicewebjarfiles”目錄下的jar包引入。引入的具體jar包如下:activation.jar;apache_soap-2_3_1.jar;axis.jar;axis-ant.jar;ceopertermonitor.jar;ceservice_iiop.jar;commons-collections-3.2

2、.jar;commons-discovery-0.2.jar;commons-fileupload-1.2.1.jar;commons-io-1.3.2.jar;commons-logging-1.0.4.jar;dom4j-1.6.1.jar;dom4j-1.6.1.jar;jaxen-1.1.1.jar;jaxrpc.jar;log4j-1.2.8.jar;mail.jar;saaj.jar;wsdl4j-1.5.1.jar。其中可選包(發(fā)布服務(wù)及生成客戶端程序是要用到的):activation.jar;mail.jar。2 配置web.xml文件參照e:zhaodongmeiecmoar

3、sandecmintegrationinterfacecode測(cè)試代碼webservice客戶端測(cè)試項(xiàng)目oarstestwebrootweb-inf web.xml進(jìn)行配置,不需要進(jìn)行修改二、接口開發(fā) 在開發(fā)之前,我們先介紹與接口實(shí)現(xiàn)相關(guān)的兩個(gè)jar包:ceopertermonitor.jar和ceservice_iiop.jar。 ceopertermonitor.jar:實(shí)現(xiàn)的是對(duì)接口操作的監(jiān)控。當(dāng)電子路演系統(tǒng)調(diào)用我們的接口進(jìn)行上傳、下載、修改和刪除操作時(shí),可以在監(jiān)控系統(tǒng)的數(shù)據(jù)庫中查看到相關(guān)的操作記錄。 ceservice_iiop.jar:主要的功能是提供對(duì)文件夾或文件進(jìn)行操作的各個(gè)接口

4、供本文檔中接口的開發(fā)時(shí)調(diào)用。當(dāng)該jar包中的函數(shù)不能滿足開發(fā)的需要時(shí),可以對(duì)該jar包進(jìn)行修改,即重寫某些方法。1 編寫服務(wù)端程序 src/services.oarsservice/ oarsservice.java 在該java類中實(shí)現(xiàn)了10個(gè)方法:oarsservice();getproperties(string filename);uploadrsfile( datahandler file,map parms);deletersfile(string documentid);downloadrsfile(string documentid);updatefileproperyandp

5、ermission(datahandler xmlfile);getparams(list affixfilebeanlist);writexml(datahandler xmlfile);createfolder(string folderpath);main(string args)下面分別介紹這些函數(shù)的功能: oarsservice():構(gòu)造函數(shù),主要實(shí)現(xiàn)的功能是從oars.config中取得參數(shù)值。并在log文件中輸出這些參數(shù)值。 getproperties(string filename):讀取配置文件,定義一個(gè)打開文件的變量,并通過這個(gè)變量加載文件內(nèi)容。 uploadrsfile(

6、 datahandler file,map parms):上傳文件,通過迭代器遍歷參數(shù)的key值,然后實(shí)例化通過解析類(xmlparser)并調(diào)用該類中的初始化方法initdocumentparams()實(shí)現(xiàn)參數(shù)的初始化,并將文件參數(shù)封裝到中,最后調(diào)用ceservice的uploadfile(path, filename, file, documentparams, oarsdocument)方法,將結(jié)果賦給文件id并返回。 deletersfile(string documentid):刪除文件。由于當(dāng)文件被刪除時(shí),伴隨它的權(quán)限也會(huì)被刪除,所以要先調(diào)用權(quán)限管理類中的removeperminf

7、ofordeletefilelogical(documentid)方法,將其權(quán)限刪除,如果權(quán)限刪除成功,再調(diào)用ceservice 的deletedocument(documentid)方法,將文件刪除。 downloadrsfile(string documentid):下載文件。調(diào)用ceservice的getdocbyid(documentid)方法,返回值為datahandler類型的文件流。 updatefileproperyandpermission(datahandler xmlfile):修改文件屬性及權(quán)限信息。首先調(diào)用xml解析類的getinfobean()方法,獲取文件屬性。然

8、后調(diào)用xml解析類中的getdocumentparams(bean)方法,將文件屬性存儲(chǔ)到hashmap中,然后通過循環(huán),調(diào)用ceservice的changedocumentproperties(documentid, documentparams)方法修改文件屬性,最后調(diào)用權(quán)限管理中的saveperminfobeach(paramlist, objsname)方法實(shí)現(xiàn)對(duì)這些屬性的保存。 getparams(list affixfilebeanlist):獲取中所需要的所有參數(shù)。 writexml(datahandler xmlfile):向本地寫入xml,返回xml路徑。 createfol

9、der(string folderpath):采用兩個(gè)循環(huán),實(shí)現(xiàn)路徑的拆分和拼接,最后通過調(diào)用的isexistfolder(dbpath)和createfolder(pathhome, pathnamej)方法實(shí)現(xiàn)循環(huán)創(chuàng)建文件夾。 相關(guān)的類文件: permissiondao.java 該類中主要實(shí)現(xiàn)底層對(duì)權(quán)限的操作。電子路演中有關(guān)權(quán)限的操作包括:權(quán)限的修改(insertperminfobeach)和權(quán)限的刪除(deleteperminfo)。權(quán)限修改的實(shí)現(xiàn):先批量刪除已存在的權(quán)限信息,再批量增加權(quán)限信息。采用jdbc實(shí)現(xiàn)對(duì)數(shù)據(jù)庫中數(shù)據(jù)的增加和刪除,需要編寫兩個(gè)語句(刪除和插入),實(shí)現(xiàn)權(quán)限的修改

10、。權(quán)限刪除的實(shí)現(xiàn):文件刪除時(shí),刪除所有權(quán)限信息(刪除數(shù)據(jù))。 xmlparser.java(xml文件解析類)見接口代碼分析.doc permissionmanager.java(權(quán)限管理類)該類實(shí)現(xiàn)的是對(duì)權(quán)限的管理:文件上傳接口插入權(quán)限信息數(shù)據(jù)庫操作(saveperminfobeach)和邏輯刪除所有權(quán)限信息(removeperminfofordeletefilelogical)。這兩個(gè)方法,分別由修改權(quán)限接口和刪除文件接口調(diào)用。 相關(guān)n:infobean:對(duì)應(yīng)xml報(bào)文中的info節(jié)點(diǎn)下參數(shù)信息;affixfilebean:對(duì)應(yīng)xml報(bào)文中的affixfile節(jié)點(diǎn)下參數(shù)信息;perminf

11、obean:對(duì)應(yīng)xml報(bào)文中的perminfo節(jié)點(diǎn)下參數(shù)信息。一個(gè)bean對(duì)應(yīng)xml報(bào)文的一層節(jié)點(diǎn)。具體的接口實(shí)現(xiàn)過程見接口代碼分析.doc2 創(chuàng)建deploy.bat文件在myeclipse中的oarsinterfacewebrootweb-inf目錄下創(chuàng)建deploy.bat文件。內(nèi)容如下:set axis_lib=.libset java_cmd=java -djava.ext.dirs=%axis_lib%set axis_servlet=38:9080/oarsinterface/servlet/axisservlet%java_cmd% org.a

12、pache.axis.client.adminclient -l%axis_servlet% deploy.wsddpause其中標(biāo)藍(lán)的部分應(yīng)該與后來發(fā)布到was上的應(yīng)用名稱(上下文根)一致。3 創(chuàng)建deploy.wsdd文件在myeclipse中的oarsinterfacewebrootweb-inf目錄下創(chuàng)建deploy.wsdd文件。內(nèi)容如下: 其中需要修改的地方:oarsservice:接口服務(wù)名稱services.oarsservice.oarsservice:接口實(shí)現(xiàn)類名uploadrsfile,deletersfile,downloadrsfile,updatefileprope

13、ryandpermission:接口中實(shí)現(xiàn)的方法,一定要和實(shí)現(xiàn)類中的名字一致。實(shí)現(xiàn)類中的方法名字一定要和集成方案中的一致。4 創(chuàng)建oars.config文件該文件放在服務(wù)端項(xiàng)目中的src目錄下。#uri=corbaloc:bejnrg001:9811,:bejnrg002:9811/cell/clusters/ecm_cluster/filenet/engineuri=iiop:/38:2809/filenet/engine#uri=38:9080/wsi/fncews40dime#username=ecmadminusername=ad

14、ministrator#password=ecm&kk2password=gds#domain=ecmdomaindomain=adminobjectstore=oarsobjxmlpath=d:xmlfile#xmlpath=/ecmdata/xmlfile創(chuàng)建客戶端一、 搭建環(huán)境1. 創(chuàng)建表空間和用戶 訪問36:5505/em/ 以sysdb身份登陸,賬戶和密碼:sys/gds 創(chuàng)建默認(rèn)表空間 oars_sp,臨時(shí)表空間:temp 創(chuàng)建用戶oarsuser/gds,( 角色增加resource) 創(chuàng)建權(quán)限信息表(perm_ref_info_oars)及相關(guān)

15、數(shù)據(jù)字典表(perm_method:授權(quán)方式和perm_type:權(quán)限操作類型)。 2. 測(cè)試環(huán)境所需目錄創(chuàng)建和所需文件上傳 oarsobj文件存儲(chǔ)目錄創(chuàng)建 創(chuàng)建objectstore之前要?jiǎng)?chuàng)建oars_storage_files目錄,登陸到138遠(yuǎn)程控制臺(tái):運(yùn)行mstsc,用戶名:administrator,密碼:gds,在 d:filenet目錄下,創(chuàng)建oars_storage_files目錄。 配置文件oars.config上傳將文件oars.config上傳到filenetmanager的d:ibmwebsphereappserverprofilesappsrv01installeda

16、ppsgds-20node01celloarsinterface_war.earoarsinterface.warweb-infclasses目錄下,可以先將文件拷到共享文件夾,然后在filenetmanager上將文件從共享文件夾拷貝到上面所提的路徑下。3. 配置websphere上的數(shù)據(jù)源 創(chuàng)建jndi數(shù)據(jù)源 登陸地址為38:9043/ibm/console/logon.jsp的websphere控制臺(tái),用戶名:administrator,密碼:gds。進(jìn)入【資源】【jdbc】【數(shù)據(jù)源】菜單下。如圖2-1-2-3-1-1圖2-1-2-3-1-1點(diǎn)擊【新建

17、】按鈕,進(jìn)入新建數(shù)據(jù)庫界面。填寫數(shù)據(jù)源名:oars_ds和jndi名稱:oars_ds點(diǎn)擊【下一步】進(jìn)入選擇jdbc驅(qū)動(dòng)配置界面,如圖選擇oracel jdbc driver.如圖2-1-2-3-1-2所示圖2-1-2-3-1-2點(diǎn)擊【下一步】進(jìn)入jdbc的url配置界面,填寫url名稱:jdbc:oracle:thin:36:1521:ecmsysmonitor,選擇【數(shù)據(jù)存儲(chǔ)器helper類名】為【oracle10g數(shù)據(jù)存儲(chǔ)器helper】,如圖2-1-2-3-1-3所示:圖2-1-2-3-1-3點(diǎn)擊【下一步】進(jìn)入創(chuàng)建數(shù)據(jù)源總結(jié)頁面,點(diǎn)擊【完成】,并保存配置。在數(shù)據(jù)源

18、列表中,點(diǎn)擊剛建好的數(shù)據(jù)源oars_ds,進(jìn)入到數(shù)據(jù)源詳細(xì)信息頁面。如圖2-1-2-3-1-4所示圖2-1-2-3-1-4點(diǎn)擊【相關(guān)項(xiàng)】中的【jaas-j2c認(rèn)證數(shù)據(jù)】,進(jìn)入到認(rèn)證數(shù)據(jù)界面。如圖2-1-2-3-1-5所示圖2-1-2-3-1-5點(diǎn)擊【新建】,進(jìn)入到用戶名和密碼的新建頁面,如圖所示,填寫相關(guān)信息,并點(diǎn)擊【應(yīng)用】完成操作。如圖2-1-2-3-1-6所示圖2-1-2-3-1-6將新建的認(rèn)證數(shù)據(jù)加入到數(shù)據(jù)源中,如圖2-1-2-3-1-7所示圖2-1-2-3-1-7創(chuàng)建jndi xa配置數(shù)據(jù)源 進(jìn)入【資源】【jdbc】【數(shù)據(jù)源】菜單下。如圖2-1-2-3-2-1圖2-1-2-3-2-1點(diǎn)

19、擊【新建】按鈕,進(jìn)入新建數(shù)據(jù)庫界面。填寫數(shù)據(jù)源名:oars_xads和jndi名稱:oars_xads,【組件管理的認(rèn)證別名和xa恢復(fù)認(rèn)證別名】選擇oarsuser。如圖2-1-2-3-2-2圖2-1-2-3-2-2點(diǎn)擊【下一步】進(jìn)入選擇jdbc驅(qū)動(dòng)配置界面,如圖選擇oracel jdbc driver(xa).如圖2-1-2-3-2-3所示圖2-1-2-3-2-3點(diǎn)擊【下一步】進(jìn)入jdbc的url配置界面,填寫url名稱:jdbc:oracle:thin:36:1521:ecmsysmonitor,選擇【數(shù)據(jù)存儲(chǔ)器helper類名】為【oracle10g數(shù)據(jù)存儲(chǔ)器hel

20、per】,如圖2-1-2-3-2-4所示:圖2-1-2-3-2-4點(diǎn)擊【下一步】進(jìn)入創(chuàng)建數(shù)據(jù)源總結(jié)頁面,點(diǎn)擊【完成】,并保存配置。4. 創(chuàng)建objectstore:oarsobj運(yùn)行mstsc,進(jìn)入filenet控制臺(tái)登陸界面,用戶名:administrator,密碼:gds。然后登陸filenet enterprise manager snapin 4.0,進(jìn)入到管理界面。右鍵“object stores”,選擇“create a new object store”.輸入object store的display name,symbolic name以及discription.注:symbol

21、ic name必須以字母字符開頭。輸入jndi datasource 以及jndi xa datasource 名稱.選擇object store的存儲(chǔ)類型,選擇“file storage area”。單擊“下一步”繼續(xù)。database storage area:數(shù)據(jù)庫存儲(chǔ),文檔內(nèi)容以blob字段的形式存儲(chǔ)到數(shù)據(jù)庫中。file storage area:文件存儲(chǔ),文檔內(nèi)容以文件的方式保存在磁盤上。fixed storage area:混合存儲(chǔ)。指定文件存儲(chǔ)路徑(目標(biāo)需要預(yù)先創(chuàng)建),如圖,指定object store管理員.指定administrator為系統(tǒng)管理員.指定使用此object s

22、tore的用戶或組.(注:這里指定的用戶和組只有訪問的權(quán)限,而沒有管理的權(quán)限).單擊“下一步”.單擊“完成”.如下圖,oarsobj已經(jīng)創(chuàng)建成功.5. 創(chuàng)建對(duì)象庫documentclass屬性1. 登陸filenet enterprise manager snapin 4.0,進(jìn)入到管理界面。2. 選擇object stores/oarsobj/document class,右鍵屬性new class,進(jìn)入提示頁面3. 點(diǎn)擊【下一步】,進(jìn)入documentclass創(chuàng)建頁面,填寫name:oarsdocument;symbolic name:oarsdocument;description:o

23、arsdocument。 4. 點(diǎn)擊【下一步】,進(jìn)入屬性設(shè)置頁面。5. 點(diǎn)擊【new】,彈出屬性創(chuàng)建提示頁面。6. 點(diǎn)擊【下一步】,進(jìn)入屬性創(chuàng)建頁面,按照文檔oars文件屬性定義.doc內(nèi)容填寫屬性信息。該文檔內(nèi)容如下:ecm字段名稱ecm字段類型是否為空字段說明projectidstring(8)是路演項(xiàng)目idprojectcreatordeptcodestring (8)是起草人所在處室idprojectcreatordeptnamestring (8)是起草人所在處室與局名稱projectcreatoridstring (8)是起草人idprojectcreatornamestring

24、(8)是起草人姓名roadshowtypeidstring (8)是路演類型idroadshowtypenamestring (8)是路演類型名稱projectnamestring (8)是路演項(xiàng)目名稱projectcreatedatedatetime (3)是項(xiàng)目起草日期7. 點(diǎn)擊【下一步】,進(jìn)入到屬性類型選擇頁面,如圖選擇string8點(diǎn)擊【下一步】,再點(diǎn)擊【下一步】,點(diǎn)擊【more】,進(jìn)入屬性的配置頁面。對(duì)字段關(guān)鍵屬性進(jìn)行設(shè)置,如:是否必填,字段長(zhǎng)度等。9.點(diǎn)擊【確定】,再點(diǎn)擊【下一步】進(jìn)入到屬性信息核對(duì)頁面,核對(duì)信息。 10.點(diǎn)擊【完成】,完成projectid屬性創(chuàng)建。11.屬性創(chuàng)建

25、完成后,自動(dòng)進(jìn)入到屬性添加頁面,選中左欄中剛剛創(chuàng)建好的【projectid】屬性,點(diǎn)擊【add】添加到右欄。12.重復(fù)步驟512,將所有需要的屬性創(chuàng)建并添加到documentclass中。6. 接口應(yīng)用部署部署oarsinterface.war應(yīng)用程序。登陸地址為38:9043/ibm/console/logon.jsp的websphere控制臺(tái),用戶名:administrator,密碼:gds。如圖2-1-2-6-1顯示,點(diǎn)擊【應(yīng)用程序】下的【安裝新的應(yīng)用程序】,進(jìn)入到應(yīng)用程序安裝界面,選擇【本地文件系統(tǒng)】,點(diǎn)擊【瀏覽】,選擇需要安裝的war包,填寫上下文

26、根【oarsinterface】,點(diǎn)擊【下一步】,進(jìn)行后續(xù)操作。圖2-1-2-6-1進(jìn)入到【選擇安裝項(xiàng)】界面,如圖2-1-2-6-2所示,選中【部署web service】選項(xiàng),點(diǎn)擊【下一步】,進(jìn)行后續(xù)操作。圖2-1-2-6-2進(jìn)入到【將模塊映射至服務(wù)器】界面,如圖2-1-2-6-3所示,選中模塊,點(diǎn)擊【下一步】,進(jìn)行后續(xù)操作。圖2-1-2-6-3進(jìn)入到【為web模塊映射虛擬主機(jī)】界面,如圖2-1-2-6-4所示,選中web模塊,點(diǎn)擊【下一步】,進(jìn)行后續(xù)操作。圖2-1-2-6-4進(jìn)入【總結(jié)頁面】,檢查【應(yīng)用程序名】等相關(guān)信息,點(diǎn)擊【完成】,進(jìn)入安裝界面,如果成功會(huì)提示信息“應(yīng)用程序oarsin

27、terface_war安裝成功”,點(diǎn)擊【保存】,完成安裝。二、生成相應(yīng)的客戶端1. 創(chuàng)建客戶端項(xiàng)目oarstest,引入e:zhaodongmeiecmoarsandecmintegrationinterfacecode測(cè)試代碼webservicewebjarfiles中的jar包。在src目錄下新建包。2. 登陸filenet控制臺(tái),運(yùn)行目錄d:ibmwebsphereappserverprofilesappsrv01installedappsgds-20node01celloarsinterface_war.earoarsinterface.warweb-inf下的deploy.bat,生

28、成server-config.wsdd.3. 利用客戶端生成工具,生成客戶端。用記事本打開e:zhaodongmeiecmcreatewebservices-clientwsdl2java.bat,內(nèi)容如下:set axis_lib=.libset java_cmd=java -djava.ext.dirs=%axis_lib%set output_path=.srcset package=set wsdl_path=38:9080/oarsinterface/services/oarsservice?wsdl%java_cmd% org.apache.axi

29、s.wsdl.wsdl2java -o%output_path% -p%package% %wsdl_path%pauseoarsinterface:對(duì)應(yīng)的應(yīng)用程序名稱。:生成的客戶端所在的文件夾。38:9080/oarsinterface/services/oarsservice?wsdl:接口發(fā)布網(wǎng)址。然后運(yùn)行wsdl2java.bat,會(huì)生成一個(gè)src 文件夾,將該文件里面的四個(gè)客戶端程序拷入到oarstest 項(xiàng)目的src/在項(xiàng)目的src/上傳文件:public void uploadfile()throws exceptionoarsservices

30、ervice service=new oarsserviceservicelocator();oarsservice_porttype manager=service.getoarsservice();tryhashmap tempmap = new hashmap(); tempmap.put(roadshowtypename, 路演類型);-給參數(shù)roadshowtypename賦值。 tempmap.put(filename, text12121212121212.doc);-給參數(shù)filename賦值。 inputstream is1=new fileinputstream(e:tes

31、t2.doc);-獲取文件流bytearraydatasource arraydatasource1=new bytearraydatasource(is1,application/octet-stream);datahandler dh1=new datahandler(arraydatasource1);-將文件流轉(zhuǎn)換為datahandler類型 string id=manager.uploadrsfile(dh1, tempmap);-調(diào)用文件上傳接口,將結(jié)果賦給id。system.out.println(id);-打印輸出idcatch (runtimeexception e) -捕獲

32、異常e.printstacktrace();-打印堆棧信息下載文件:public datahandler downloadfile()throws exceptionoarsserviceservice service=new oarsserviceservicelocator();oarsservice_porttype manager=service.getoarsservice();datahandler dh =manager.downloadrsfile(35cd94c8-42a6-498b-bde3-00ba860823f4);-給定文件id,調(diào)用文件下載接口,并將結(jié)果賦給datahandler類型的變量system.out.println(dh);-打印輸出結(jié)果。inputstream input = dh.getinputstream();-獲取文件輸入流 fileoutputstream out = new fileoutputstream(e:/hhhhhh.doc);將文件輸出存入指定的文檔中 byte buffer = new byte10* 1024 * 1024; int n = 0; while (n = input.read(buffer) != -1) out.write(buffer, 0,

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論