webservice接口实现过程_第1页
webservice接口实现过程_第2页
webservice接口实现过程_第3页
webservice接口实现过程_第4页
webservice接口实现过程_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、说明:该文档以电子路演系统与ecm的webservice集成为例创建服务端一、 搭建测试环境1 新建web工程 oarsinterface,引入jar包 将“e:zhaodongmeiecmoarsandecmintegrationinterfacecode测试代码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。其中可选包(发布服务及生成客户端程序是要用到的):activation.jar;mail.jar。2 配置web.xml文件参照e:zhaodongmeiecmoar

3、sandecmintegrationinterfacecode测试代码webservice客户端测试项目oarstestwebrootweb-inf web.xml进行配置,不需要进行修改二、接口开发 在开发之前,我们先介绍与接口实现相关的两个jar包:ceopertermonitor.jar和ceservice_iiop.jar。 ceopertermonitor.jar:实现的是对接口操作的监控。当电子路演系统调用我们的接口进行上传、下载、修改和删除操作时,可以在监控系统的数据库中查看到相关的操作记录。 ceservice_iiop.jar:主要的功能是提供对文件夹或文件进行操作的各个接口

4、供本文档中接口的开发时调用。当该jar包中的函数不能满足开发的需要时,可以对该jar包进行修改,即重写某些方法。1 编写服务端程序 src/services.oarsservice/ oarsservice.java 在该java类中实现了10个方法: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)下面分别介绍这些函数的功能: oarsservice():构造函数,主要实现的功能是从oars.config中取得参数值。并在log文件中输出这些参数值。 getproperties(string filename):读取配置文件,定义一个打开文件的变量,并通过这个变量加载文件内容。 uploadrsfile(

6、 datahandler file,map parms):上传文件,通过迭代器遍历参数的key值,然后实例化通过解析类(xmlparser)并调用该类中的初始化方法initdocumentparams()实现参数的初始化,并将文件参数封装到中,最后调用ceservice的uploadfile(path, filename, file, documentparams, oarsdocument)方法,将结果赋给文件id并返回。 deletersfile(string documentid):删除文件。由于当文件被删除时,伴随它的权限也会被删除,所以要先调用权限管理类中的removeperminf

7、ofordeletefilelogical(documentid)方法,将其权限删除,如果权限删除成功,再调用ceservice 的deletedocument(documentid)方法,将文件删除。 downloadrsfile(string documentid):下载文件。调用ceservice的getdocbyid(documentid)方法,返回值为datahandler类型的文件流。 updatefileproperyandpermission(datahandler xmlfile):修改文件属性及权限信息。首先调用xml解析类的getinfobean()方法,获取文件属性。然

8、后调用xml解析类中的getdocumentparams(bean)方法,将文件属性存储到hashmap中,然后通过循环,调用ceservice的changedocumentproperties(documentid, documentparams)方法修改文件属性,最后调用权限管理中的saveperminfobeach(paramlist, objsname)方法实现对这些属性的保存。 getparams(list affixfilebeanlist):获取中所需要的所有参数。 writexml(datahandler xmlfile):向本地写入xml,返回xml路径。 createfol

9、der(string folderpath):采用两个循环,实现路径的拆分和拼接,最后通过调用的isexistfolder(dbpath)和createfolder(pathhome, pathnamej)方法实现循环创建文件夹。 相关的类文件: permissiondao.java 该类中主要实现底层对权限的操作。电子路演中有关权限的操作包括:权限的修改(insertperminfobeach)和权限的删除(deleteperminfo)。权限修改的实现:先批量删除已存在的权限信息,再批量增加权限信息。采用jdbc实现对数据库中数据的增加和删除,需要编写两个语句(删除和插入),实现权限的修改

10、。权限删除的实现:文件删除时,删除所有权限信息(删除数据)。 xmlparser.java(xml文件解析类)见接口代码分析.doc permissionmanager.java(权限管理类)该类实现的是对权限的管理:文件上传接口插入权限信息数据库操作(saveperminfobeach)和逻辑删除所有权限信息(removeperminfofordeletefilelogical)。这两个方法,分别由修改权限接口和删除文件接口调用。 相关n:infobean:对应xml报文中的info节点下参数信息;affixfilebean:对应xml报文中的affixfile节点下参数信息;perminf

11、obean:对应xml报文中的perminfo节点下参数信息。一个bean对应xml报文的一层节点。具体的接口实现过程见接口代码分析.doc2 创建deploy.bat文件在myeclipse中的oarsinterfacewebrootweb-inf目录下创建deploy.bat文件。内容如下: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其中标蓝的部分应该与后来发布到was上的应用名称(上下文根)一致。3 创建deploy.wsdd文件在myeclipse中的oarsinterfacewebrootweb-inf目录下创建deploy.wsdd文件。内容如下: 其中需要修改的地方:oarsservice:接口服务名称services.oarsservice.oarsservice:接口实现类名uploadrsfile,deletersfile,downloadrsfile,updatefileprope

13、ryandpermission:接口中实现的方法,一定要和实现类中的名字一致。实现类中的方法名字一定要和集成方案中的一致。4 创建oars.config文件该文件放在服务端项目中的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创建客户端一、 搭建环境1. 创建表空间和用户 访问36:5505/em/ 以sysdb身份登陆,账户和密码:sys/gds 创建默认表空间 oars_sp,临时表空间:temp 创建用户oarsuser/gds,( 角色增加resource) 创建权限信息表(perm_ref_info_oars)及相关

15、数据字典表(perm_method:授权方式和perm_type:权限操作类型)。 2. 测试环境所需目录创建和所需文件上传 oarsobj文件存储目录创建 创建objectstore之前要创建oars_storage_files目录,登陆到138远程控制台:运行mstsc,用户名:administrator,密码:gds,在 d:filenet目录下,创建oars_storage_files目录。 配置文件oars.config上传将文件oars.config上传到filenetmanager的d:ibmwebsphereappserverprofilesappsrv01installeda

16、ppsgds-20node01celloarsinterface_war.earoarsinterface.warweb-infclasses目录下,可以先将文件拷到共享文件夹,然后在filenetmanager上将文件从共享文件夹拷贝到上面所提的路径下。3. 配置websphere上的数据源 创建jndi数据源 登陆地址为38:9043/ibm/console/logon.jsp的websphere控制台,用户名:administrator,密码:gds。进入【资源】【jdbc】【数据源】菜单下。如图2-1-2-3-1-1图2-1-2-3-1-1点击【新建

17、】按钮,进入新建数据库界面。填写数据源名:oars_ds和jndi名称:oars_ds点击【下一步】进入选择jdbc驱动配置界面,如图选择oracel jdbc driver.如图2-1-2-3-1-2所示图2-1-2-3-1-2点击【下一步】进入jdbc的url配置界面,填写url名称:jdbc:oracle:thin:36:1521:ecmsysmonitor,选择【数据存储器helper类名】为【oracle10g数据存储器helper】,如图2-1-2-3-1-3所示:图2-1-2-3-1-3点击【下一步】进入创建数据源总结页面,点击【完成】,并保存配置。在数据源

18、列表中,点击刚建好的数据源oars_ds,进入到数据源详细信息页面。如图2-1-2-3-1-4所示图2-1-2-3-1-4点击【相关项】中的【jaas-j2c认证数据】,进入到认证数据界面。如图2-1-2-3-1-5所示图2-1-2-3-1-5点击【新建】,进入到用户名和密码的新建页面,如图所示,填写相关信息,并点击【应用】完成操作。如图2-1-2-3-1-6所示图2-1-2-3-1-6将新建的认证数据加入到数据源中,如图2-1-2-3-1-7所示图2-1-2-3-1-7创建jndi xa配置数据源 进入【资源】【jdbc】【数据源】菜单下。如图2-1-2-3-2-1图2-1-2-3-2-1点

19、击【新建】按钮,进入新建数据库界面。填写数据源名:oars_xads和jndi名称:oars_xads,【组件管理的认证别名和xa恢复认证别名】选择oarsuser。如图2-1-2-3-2-2图2-1-2-3-2-2点击【下一步】进入选择jdbc驱动配置界面,如图选择oracel jdbc driver(xa).如图2-1-2-3-2-3所示图2-1-2-3-2-3点击【下一步】进入jdbc的url配置界面,填写url名称:jdbc:oracle:thin:36:1521:ecmsysmonitor,选择【数据存储器helper类名】为【oracle10g数据存储器hel

20、per】,如图2-1-2-3-2-4所示:图2-1-2-3-2-4点击【下一步】进入创建数据源总结页面,点击【完成】,并保存配置。4. 创建objectstore:oarsobj运行mstsc,进入filenet控制台登陆界面,用户名:administrator,密码:gds。然后登陆filenet enterprise manager snapin 4.0,进入到管理界面。右键“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的存储类型,选择“file storage area”。单击“下一步”继续。database storage area:数据库存储,文档内容以blob字段的形式存储到数据库中。file storage area:文件存储,文档内容以文件的方式保存在磁盘上。fixed storage area:混合存储。指定文件存储路径(目标需要预先创建),如图,指定object store管理员.指定administrator为系统管理员.指定使用此object s

22、tore的用户或组.(注:这里指定的用户和组只有访问的权限,而没有管理的权限).单击“下一步”.单击“完成”.如下图,oarsobj已经创建成功.5. 创建对象库documentclass属性1. 登陆filenet enterprise manager snapin 4.0,进入到管理界面。2. 选择object stores/oarsobj/document class,右键属性new class,进入提示页面3. 点击【下一步】,进入documentclass创建页面,填写name:oarsdocument;symbolic name:oarsdocument;description:o

23、arsdocument。 4. 点击【下一步】,进入属性设置页面。5. 点击【new】,弹出属性创建提示页面。6. 点击【下一步】,进入属性创建页面,按照文档oars文件属性定义.doc内容填写属性信息。该文档内容如下:ecm字段名称ecm字段类型是否为空字段说明projectidstring(8)是路演项目idprojectcreatordeptcodestring (8)是起草人所在处室idprojectcreatordeptnamestring (8)是起草人所在处室与局名称projectcreatoridstring (8)是起草人idprojectcreatornamestring

24、(8)是起草人姓名roadshowtypeidstring (8)是路演类型idroadshowtypenamestring (8)是路演类型名称projectnamestring (8)是路演项目名称projectcreatedatedatetime (3)是项目起草日期7. 点击【下一步】,进入到属性类型选择页面,如图选择string8点击【下一步】,再点击【下一步】,点击【more】,进入属性的配置页面。对字段关键属性进行设置,如:是否必填,字段长度等。9.点击【确定】,再点击【下一步】进入到属性信息核对页面,核对信息。 10.点击【完成】,完成projectid属性创建。11.属性创建

25、完成后,自动进入到属性添加页面,选中左栏中刚刚创建好的【projectid】属性,点击【add】添加到右栏。12.重复步骤512,将所有需要的属性创建并添加到documentclass中。6. 接口应用部署部署oarsinterface.war应用程序。登陆地址为38:9043/ibm/console/logon.jsp的websphere控制台,用户名:administrator,密码:gds。如图2-1-2-6-1显示,点击【应用程序】下的【安装新的应用程序】,进入到应用程序安装界面,选择【本地文件系统】,点击【浏览】,选择需要安装的war包,填写上下文

26、根【oarsinterface】,点击【下一步】,进行后续操作。图2-1-2-6-1进入到【选择安装项】界面,如图2-1-2-6-2所示,选中【部署web service】选项,点击【下一步】,进行后续操作。图2-1-2-6-2进入到【将模块映射至服务器】界面,如图2-1-2-6-3所示,选中模块,点击【下一步】,进行后续操作。图2-1-2-6-3进入到【为web模块映射虚拟主机】界面,如图2-1-2-6-4所示,选中web模块,点击【下一步】,进行后续操作。图2-1-2-6-4进入【总结页面】,检查【应用程序名】等相关信息,点击【完成】,进入安装界面,如果成功会提示信息“应用程序oarsin

27、terface_war安装成功”,点击【保存】,完成安装。二、生成相应的客户端1. 创建客户端项目oarstest,引入e:zhaodongmeiecmoarsandecmintegrationinterfacecode测试代码webservicewebjarfiles中的jar包。在src目录下新建包。2. 登陆filenet控制台,运行目录d:ibmwebsphereappserverprofilesappsrv01installedappsgds-20node01celloarsinterface_war.earoarsinterface.warweb-inf下的deploy.bat,生

28、成server-config.wsdd.3. 利用客户端生成工具,生成客户端。用记事本打开e:zhaodongmeiecmcreatewebservices-clientwsdl2java.bat,内容如下: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:对应的应用程序名称。:生成的客户端所在的文件夹。38:9080/oarsinterface/services/oarsservice?wsdl:接口发布网址。然后运行wsdl2java.bat,会生成一个src 文件夹,将该文件里面的四个客户端程序拷入到oarstest 项目的src/在项目的src/上传文件:public void uploadfile()throws exceptionoarsservices

30、ervice service=new oarsserviceservicelocator();oarsservice_porttype manager=service.getoarsservice();tryhashmap tempmap = new hashmap(); tempmap.put(roadshowtypename, 路演类型);-给参数roadshowtypename赋值。 tempmap.put(filename, text12121212121212.doc);-给参数filename赋值。 inputstream is1=new fileinputstream(e:tes

31、t2.doc);-获取文件流bytearraydatasource arraydatasource1=new bytearraydatasource(is1,application/octet-stream);datahandler dh1=new datahandler(arraydatasource1);-将文件流转换为datahandler类型 string id=manager.uploadrsfile(dh1, tempmap);-调用文件上传接口,将结果赋给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,调用文件下载接口,并将结果赋给datahandler类型的变量system.out.println(dh);-打印输出结果。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等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论