webservice接口实现过程

上传人:仙*** 文档编号:30433763 上传时间:2021-10-10 格式:DOC 页数:29 大小:1.13MB
返回 下载 相关 举报
webservice接口实现过程_第1页
第1页 / 共29页
webservice接口实现过程_第2页
第2页 / 共29页
webservice接口实现过程_第3页
第3页 / 共29页
点击查看更多>>
资源描述
说明:该文档以电子路演系统与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.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:zhaodongmeiECMOARSandECMIntegrationInterfaceCode测试代码WebService客户端测试项目OARSTestWebRootWEB-INF web.xml进行配置,不需要进行修改二、接口开发 在开发之前,我们先介绍与接口实现相关的两个jar包:CEOperterMonitor.jar和CEService_IIOP.jar。 CEOperterMonitor.jar:实现的是对接口操作的监控。当电子路演系统调用我们的接口进行上传、下载、修改和删除操作时,可以在监控系统的数据库中查看到相关的操作记录。 CEService_IIOP.jar:主要的功能是提供对文件夹或文件进行操作的各个接口供本文档中接口的开发时调用。当该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);updateFileProperyAndPermission(DataHandler xmlFile);getParams(List affixfilebeanList);writeXML(DataHandler xmlFile);createFolder(String folderPath);main(String args)下面分别介绍这些函数的功能: OARSService():构造函数,主要实现的功能是从OARS.config中取得参数值。并在log文件中输出这些参数值。 getProperties(String filename):读取配置文件,定义一个打开文件的变量,并通过这个变量加载文件内容。 uploadRSFile( DataHandler file,Map parms):上传文件,通过迭代器遍历参数的key值,然后实例化通过解析类(XMLParser)并调用该类中的初始化方法initDocumentParams()实现参数的初始化,并将文件参数封装到中,最后调用CEService的uploadFile(path, fileName, file, documentParams, OARSDocument)方法,将结果赋给文件ID并返回。 deleteRSFile(String documentId):删除文件。由于当文件被删除时,伴随它的权限也会被删除,所以要先调用权限管理类中的removePermInfoForDeleteFileLogical(documentId)方法,将其权限删除,如果权限删除成功,再调用CEService 的deleteDocument(documentId)方法,将文件删除。 downloadRSFile(String documentId):下载文件。调用CEService的getDocByID(documentId)方法,返回值为DataHandler类型的文件流。 updateFileProperyAndPermission(DataHandler xmlFile):修改文件属性及权限信息。首先调用XML解析类的getInfoBean()方法,获取文件属性。然后调用XML解析类中的getDocumentParams(bean)方法,将文件属性存储到HashMap中,然后通过循环,调用CEService的changeDocumentProperties(documentId, documentParams)方法修改文件属性,最后调用权限管理中的savePermInfoBeach(paramList, objsName)方法实现对这些属性的保存。 getParams(List affixfilebeanList):获取中所需要的所有参数。 writeXML(DataHandler xmlFile):向本地写入XML,返回XML路径。 createFolder(String folderPath):采用两个循环,实现路径的拆分和拼接,最后通过调用的isExistFolder(dbPath)和createFolder(pathHome, pathNamej)方法实现循环创建文件夹。 相关的类文件: PermissionDao.java 该类中主要实现底层对权限的操作。电子路演中有关权限的操作包括:权限的修改(insertPermInfoBeach)和权限的删除(deletePermInfo)。权限修改的实现:先批量删除已存在的权限信息,再批量增加权限信息。采用JDBC实现对数据库中数据的增加和删除,需要编写两个语句(删除和插入),实现权限的修改。权限删除的实现:文件删除时,删除所有权限信息(删除数据)。 XMLParser.java(XML文件解析类)见接口代码分析.doc PermissionManager.java(权限管理类)该类实现的是对权限的管理:文件上传接口插入权限信息数据库操作(savePermInfoBeach)和逻辑删除所有权限信息(removePermInfoForDeleteFileLogical)。这两个方法,分别由修改权限接口和删除文件接口调用。 相关n:InfoBean:对应XML报文中的Info节点下参数信息;AffixFileBean:对应XML报文中的AffixFile节点下参数信息;PermInfoBean:对应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=http:/10.60.108.138:9080/OARSInterface/servlet/AxisServlet%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsddpause其中标蓝的部分应该与后来发布到was上的应用名称(上下文根)一致。3 创建deploy.wsdd文件在Myeclipse中的OARSInterfaceWebRootWEB-INF目录下创建deploy.wsdd文件。内容如下: 其中需要修改的地方:OARSService:接口服务名称services.OARSService.OARSService:接口实现类名uploadRSFile,deleteRSFile,downloadRSFile,updateFileProperyAndPermission:接口中实现的方法,一定要和实现类中的名字一致。实现类中的方法名字一定要和集成方案中的一致。4 创建OARS.Config文件该文件放在服务端项目中的src目录下。#uri=corbaloc:bejnrg001:9811,:bejnrg002:9811/cell/clusters/ECM_CLUSTER/FileNet/Engineuri=iiop:/10.60.108.138:2809/FileNet/Engine#uri=http:/10.60.108.138:9080/wsi/FNCEWS40DIME#username=ecmadminusername=administrator#password=Ecm&Kk2password=gds#domain=ECMDomaindomain=adminobjectstore=OARSOBJxmlPath=D:xmlFile#xmlPath=/ECMData/xmlFile创建客户端一、 搭建环境1. 创建表空间和用户 访问http:/10.60.108.136:5505/em/ 以SYSDB身份登陆,账户和密码:sys/gds 创建默认表空间 oars_sp,临时表空间:temp 创建用户oarsuser/gds,( 角色增加RESOURCE) 创建权限信息表(PERM_REF_INFO_OARS)及相关数据字典表(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:IBMWebSphereAppServerprofilesAppSrv01installedAppsGDS-20Node01CellOARSInterface_war.earOARSInterface.warWEB-INFclasses目录下,可以先将文件拷到共享文件夹,然后在FileNetManager上将文件从共享文件夹拷贝到上面所提的路径下。3. 配置WebSphere上的数据源 创建JNDI数据源 登陆地址为https:/10.60.108.138:9043/ibm/console/logon.jsp的WebSphere控制台,用户名:administrator,密码:gds。进入【资源】【JDBC】【数据源】菜单下。如图2-1-2-3-1-1图2-1-2-3-1-1点击【新建】按钮,进入新建数据库界面。填写数据源名: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:10.60.108.136:1521:ECMSysMonitor,选择【数据存储器helper类名】为【Oracle10g数据存储器helper】,如图2-1-2-3-1-3所示:图2-1-2-3-1-3点击【下一步】进入创建数据源总结页面,点击【完成】,并保存配置。在数据源列表中,点击刚建好的数据源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点击【新建】按钮,进入新建数据库界面。填写数据源名: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:10.60.108.136:1521:ECMSysMonitor,选择【数据存储器helper类名】为【Oracle10g数据存储器helper】,如图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.注:Symbolic 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 Store的用户或组.(注:这里指定的用户和组只有访问的权限,而没有管理的权限).单击“下一步”.单击“完成”.如下图,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:OARSDocument。 4. 点击【下一步】,进入属性设置页面。5. 点击【new】,弹出属性创建提示页面。6. 点击【下一步】,进入属性创建页面,按照文档OARS文件属性定义.doc内容填写属性信息。该文档内容如下:ECM字段名称ECM字段类型是否为空字段说明projectIdString(8)是路演项目IDprojectCreatorDeptCodeString (8)是起草人所在处室IDprojectCreatorDeptNameString (8)是起草人所在处室与局名称projectCreatorIdString (8)是起草人IDprojectCreatorNameString (8)是起草人姓名roadshowTypeIdString (8)是路演类型IDroadshowTypeNameString (8)是路演类型名称projectNameString (8)是路演项目名称projectCreateDateDateTime (3)是项目起草日期7. 点击【下一步】,进入到属性类型选择页面,如图选择String8点击【下一步】,再点击【下一步】,点击【more】,进入属性的配置页面。对字段关键属性进行设置,如:是否必填,字段长度等。9.点击【确定】,再点击【下一步】进入到属性信息核对页面,核对信息。 10.点击【完成】,完成projectId属性创建。11.属性创建完成后,自动进入到属性添加页面,选中左栏中刚刚创建好的【projectId】属性,点击【Add】添加到右栏。12.重复步骤512,将所有需要的属性创建并添加到DocumentClass中。6. 接口应用部署部署OARSInterface.war应用程序。登陆地址为https:/10.60.108.138:9043/ibm/console/logon.jsp的WebSphere控制台,用户名:administrator,密码:gds。如图2-1-2-6-1显示,点击【应用程序】下的【安装新的应用程序】,进入到应用程序安装界面,选择【本地文件系统】,点击【浏览】,选择需要安装的WAR包,填写上下文根【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进入【总结页面】,检查【应用程序名】等相关信息,点击【完成】,进入安装界面,如果成功会提示信息“应用程序OARSInterface_war安装成功”,点击【保存】,完成安装。二、生成相应的客户端1. 创建客户端项目OARSTest,引入E:zhaodongmeiECMOARSandECMIntegrationInterfaceCode测试代码WebServiceWebJarFiles中的jar包。在src目录下新建包。2. 登陆FileNet控制台,运行目录D:IBMWebSphereAppServerprofilesAppSrv01installedAppsGDS-20Node01CellOARSInterface_war.earOARSInterface.warWEB-INF下的deploy.bat,生成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=http:/10.60.108.138:9080/OARSInterface/services/OARSService?wsdl%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% %wsdl_path%PauseOARSInterface:对应的应用程序名称。:生成的客户端所在的文件夹。http:/10.60.108.138:9080/OARSInterface/services/OARSService?wsdl:接口发布网址。然后运行wsdl2java.bat,会生成一个src 文件夹,将该文件里面的四个客户端程序拷入到OARSTest 项目的src/在项目的src/上传文件:public void uploadFile()throws ExceptionOARSServiceService 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:test2.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) -捕获异常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, n); input.close();return dh;修改文件属性:public boolean updateFile()throws ExceptionOARSServiceService service=new OARSServiceServiceLocator();OARSService_PortType manager=service.getOARSService();InputStream is2=new FileInputStream(E:roadshow_affix_info.xml);-输入指定文件的内容ByteArrayDataSource arraydatasource2=new ByteArrayDataSource(is2,application/octet-stream);DataHandler dh=new DataHandler(arraydatasource2);-将文件内容转换为DataHandler类型Boolean bool=manager.updateFileProperyAndPermission(dh);-调用修改文件参数和权限接口函数,并将结果赋给布尔变量return bool;-返回布尔结果。删除文件:public boolean deleteFile()throws ExceptionOARSServiceService service=new OARSServiceServiceLocator();OARSService_PortType manager=service.getOARSService();boolean bool=false;bool=manager.deleteRSFile(35CD94C8-42A6-498B-BDE3-00BA860823F4);-给定文件的,调用文件删除接口函数,将结果赋给布尔变量return bool;-返回布尔结果。 三、测试生成相应的客户端 编写main函数,分别调用OARSClient中的四个函数,登陆FileNetWorkplace查看测试的结果,并用PLSQLDeveloper登陆数据库:gcduserGCD/gds,当修改权限后查看MyObjects数据库中表perm_ref_info_oars 中是否增加了相应的权限信息。当删除文件时,查看该表中的该文件的权限信息是否伴随着文件被删除。FileNetWorkplace登陆地址:http:/10.60.108.138:9080/Workplace/ 用户名:administrator 密码:gds
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!