logo资料库

TRS WCM SOAP接口说明.pdf

第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
资料共17页,剩余部分请下载后查看
1 概述
2 适应范围
3 WCM的更新和设置
4 接口详述
4.1 获取当前WCM SOAP服务的版本
4.2 利用共享目录向WCM导入批量装载的文件
4.3 向WCM导入批量装载的文件
4.4 获取WCM栏目信息的服务
5 附录1 第三方应用FAQ
6 附录2 返回结果XML样例
7 附录3 XML规范
8 附录4 站点信息的XML样例
TRS WCM SOAP 接口说明 1 概述 WCM 支持给第三方产品提供 SOAP 接口,以便完成数据交换;关于 SOAP 协议的介绍, 这里不再详述,请自行在互联网搜索查阅;本文主要描述 WCM SOAP 的接口以及数据格式, 以便指导第三方和 WCM 交换数据。 2 适应范围 产品版本:TRS WCM5.2 和 TRS WCM6.X WCM SOAP 接口的版本:7(通过 getMajorVersion 可以获得) 3 WCM 的更新和设置 如果第三方拟定采用 FTP 或者共享目录的方式传递导入的文件,需要做如下更新: [1] 停止系统 [2] 更新 WCM SOAP 的实现 备份 WEB-INF/classes/com 目录,将附件内容解压,拷贝到 WEB-INF/classes/ [3] 更新 SOAP 配置 修改 WEB-INF/ server-config.wsdd 文件,将: 改为 [4] 重启系统 [5] 增加系统配置 在 WCM 系统配置用户新增配置中增加一条配置,内容如下: 名称:IMPORT_FILE_PATH 说明:第三方应用和 WCM 交换文件的本地目录 值 :实施人员根据情况自己设置服务器的本地路径,例如:d:\temp\或者 /user/wcm/tmp/
4 接口详述 4.1 获取当前 WCM SOAP 服务的版本 服务名称 获取当前 WCM SOAP 服务的版本 服务描述 服务名 方法名 参数 返回信息 Java 访问代码 返回结果样例 http:///wcm/services/trswcm: GetSOAPInfoService getMajorVersion 无 @return 返回一个整型数 String sTargetEndpointAddress = "http://localhost:8080/wcm/services/trswcm:GetSOAPInfoService"; Service service = new Service(); Call call = null; try { call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL( sTargetEndpointAddress)); call.setOperationName(new QName("http://service.wcm.trs.com", "getMajorVersion")); Integer iResult = (Integer) call.invoke(new Object[] {}); System.out.println("iResult=" + iResult); } catch (Exception e) { e.printStackTrace(); } 7
4.2 利用共享目录向 WCM 导入批量装载的文件 服务名称 利用共享目录向 WCM 导入批量装载的文件 服务描述 服务名 方法名 参数 返回信息 Java 访问代码 http:///wcm/services/trswcm:ImportService importDocumentsByLocalFile /** * @param _sUserName * 当前操作的用户,需要是WCM已经存在的用户名,可以是空串,默认是System * @param _sFileName * 已经上传到共享目录的文件,可以是ZIP也可以是一个XML,如果含有附件,需要将XML 以及附件打成ZIP文件上传过去,XML的格式见附录3 XML规范 * @return * XML结构的返回信息 */ @return 以 XML 形式组织的返回信息,如果失败也返回相同结构的信息,只是内容不一样 String sResult = null; String sTargetEndpointAddress = "http://localhost:8080/wcm/services/trswcm:ImportService"; Service service = new Service(); Call call = null; try { call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL( sTargetEndpointAddress)); call.setOperationName(new QName("http://service.wcm.trs.com", "importDocumentsByLocalFile")); Object[] parameters = {"admin", "DOCUMENT20090220419440310472.zip" }; sResult = (String) call.invoke(parameters); System.out.println("==========sResult========\n" + sResult); } catch (Exception e) { e.printStackTrace(); }
返回结果样例 附录2 返回结果XML样例 4.3 向 WCM 导入批量装载的文件 服务名称 向 WCM 导入批量装载的文件 服务描述 服务名 方法名 参数 返回信息 Java 访问代码 http:///wcm/services/trswcm:ImportService importDocuments /** * 从指定文件中导入文档集合 * * @param _pImportFileContent * 需要导入的文件内容,为byte数组(不需要编码),文件可以是ZIP也可以是一个XML; 如果含有附件,需要将XML以及附件打成ZIP文件上传过去, XML的格式见附录3 XML规范 String sResult = null; * @param _sFileExt * 文件后缀名(默认为ZIP) * @return 以XML形式组织的返回信息,如果失败也返回相同结构的信息,只是内容不一 样 */ @return 以 XML 形式组织的返回信息,如果失败也返回相同结构的信息,只是内容不一样 String sTargetEndpointAddress = "http://localhost:8080/wcm/services/trswcm:ImportService"; Service service = new Service(); Call call = null; try { call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL(sTargetEndpointAddress)); call.setOperationName(new QName("http://service.wcm.trs.com", "importDocuments")); sResult = (String) call.invoke(new Object[] { CMyFile.readBytesFromFile("y:\\test\\radar.zip"), "zip" }); System.out.println("==========sResult========\n" + sResult);
} catch (Exception e) { e.printStackTrace(); } 返回结果样例 附录2 返回结果XML样例 4.4 获取 WCM 栏目信息的服务 服务名称 获取 WCM 栏目信息的服务 服务描述 服务名 方法名 参数 http:///wcm/services/trswcm:GetChannelInfoService getAllChannelXML 无 返回信息 标准的 WCM XML 字符串 Java 访问代码 返回结果样例 String sResult = null; String sTargetEndpointAddress = "http://localhost:8080/wcm/services/trswcm:GetChannelInfoService"; Service service = new Service(); Call call = null; try { call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL( sTargetEndpointAddress)); call.setOperationName(new QName("http://service.wcm.trs.com", "getAllChannelXML")); sResult = (String) call.invoke(new Object[] {}); System.out.println("==========sResult========\n" + sResult); } catch (Exception e) { e.printStackTrace(); } 附录4 站点信息的XML样例
5 附录 1 第三方应用 FAQ 第三方如果是 Java 调用需要引入的包: jaxrpc.jar,jaxen.jar,commons-discovery-0.2.jar,saaj.jar,axis.jar 如果在使用过程中,出现 ClassNotFoundError 可以通过 wcm/wcm_use/classlocation.jsp 在 wcm 中查找一下. 需要的包,在 wcm 中应该都有. 6 附录 2 返回结果 XML 样例 false <![CDATA[共处理3篇文档导入.成功导入3篇,有0篇导入失败!]]> true <![CDATA[广州开始立项研究学生网络语言[文档-717]导入成功!]]> true <![CDATA[上半年我国IT产业大盘点 “六大问题”亟待解决[文档-718]导入成 <ERROR-INFO><![CDATA[]]></ERROR-INFO> <IS-SUCCESS>true</IS-SUCCESS> <TITLE><![CDATA[fdfad[文档-719]导入成功!]]> 功!]]> 7 附录 3 XML 规范 以下内容描述了一个 WCM 对象集合 <${TableName}S> <${TableName}> ${ReleatedObjs} ${ObjectProperties}
其中 ${TableName}:对象对应的表名. ${ObjectProperties}:对象的属性列表,对应的是数据表列(可能不是所有的列) ${ReleatedObjs}:对象相关联的对象集合,该对象的 XML 描述需要符合规范(可以没有) 以文档对象为例 ${TableName}=WCMDOCUMENT ${ObjectProperties}=DOCTITLE,DOCCHANNEL,DOCTYPE,DOCCONTENT etc. ${ReleatedObjs}=Appendixes. 因此一个可能的文档描述为 612 0 20 2002-08-12 22:36:46 10
0 0 1 607 2002-08-07 13:18:00 1 232 -1 APPFLAG表示附件类型,可以填入以下内容(值的解释别加入): 10:文件类型的附件 20:图片类型的附件 40:链接类型附件
分享到:
收藏