中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> Bea专区 > BEA Workshop
解决手持设备Web浏览的烦恼
作者:Paul Mc Galey 时间:2006-08-04 12:07 出处:bea.com.cn 责编:月夜寒箫
              摘要:解决手持设备Web浏览的烦恼
 本系列文章首先对Documentum Business Object Framework(BOF)进行概述,然后再介绍BEA WebLogic Workshop(WLW)的Documentum Business Objects Control (DBOC)。

  第 2 部分介绍了一些实现的技术基础,讨论与Documentum安全的集成,并研究一些示例代码。

  第 3 部分通过使用Service Based Objects(SBO)来建立在前面文章中所介绍的概念(可从Ness网站获得),SBO可从Documentum的Component Exchange网站下载。


  注意:作为Documentum和BEA的合作伙伴,Ness Technologies应邀创建了BEA的Workshop与Documentum的基于服务的业务对象(service-based business objects)之间的集成。该集成包括控件、示例应用程序和集成的帮助,在第一次使用该控件时应将该集成全部下载并安装到Workshop中。

  我们将演示:

  • 访问Documentum Component Exchange
  • 下载Documentum Business Object Registry Utility(DBORManager)
  • 从Documentum Component Exchange下载一些SBO
  • 构建使用多个SBO的Web服务

    该Web服务将网页下载到Documentum文件夹中,然后生成一个包括该文件夹全部内容的zip文件,将该zip文件放在同一个文件夹中。该特定Web服务并非特别有用,但是它却演示了在Workshop中获取、安装、注册和使用SBO的基本技术。您可以使用这里介绍的技术来使用其他的SBO,这些SBO可以从Component Exchange网站获得,并且可以作为您自己编写的SBO的模型。
    开始

  本文假定您根据前两篇文章的步骤(或者根据DBOC的Workshop帮助文件的指导)已经安装了DBOC示例应用程序。这就保证了您已经安装DBOC并且它可以查看您的Documentum资源。

  如果想要创建该演示例子,并在您自己的Documentum安装上运行它,在开始工作前您需要以下信息:

  • 您访问的Documentum Docbase的名称
  • Docbase的用户帐号和密码
  • Docbase中文件夹的r_objectID,演示例子可以使用该Docbase来存储下载的文件。

    注意:r_objectID是识别文件夹的数字指示器(例如,0b00cb9c80033d57)。如果您正在使用Documentum的WebTop界面,可以通过查看文件夹的属性屏幕来获取r_objectID。有各种编程方法来获取这个ID,但是这不在本文讨论的范围内。

  Documentum的Component Exchange
  Documentum开发人员站点是最佳的客户资源之一,从这里可以获得技术信息、示例代码和使用技巧。登录http://developer.documentum.com时,将被重定位到开发人员的页面。

  

  需要注意的区域之一是Component Exchange,它包含可以下载和用在自己应用程序中的组件。这些组件被分成以下几个组:

  • 业务对象框架(Business Objects Framework)
  • 桌面开发工具包(Desktop Development Kit)
  • 门户(Portals)
  • 相关文章(Related Articles)
  • 网络开发工具包(Web Development Kit)

    下图显示了可以从业务对象框架(Business Objects Framework)区获得的部分文章、最佳实践和组件:

  

  我们将下载Documentum Business Objects Registry Overview and Utility,以及一些SBO组件。

  下载DBOR Manage程序
  使用Documentum Business Object Registry(DBOR)注册新的SBO。尽管可以使用API调用来进行注册,但是使用“DBORManage”工具更加方便,因此我们首先将从component exchange下载它,然后将其解压到任意目录下。

  

  下图显示zip文件中的文件,接下来我们将简要讨论其中一个文件(dborRegisterCustom.bat),这个批处理文件能够自动对该演示例子进行注册。

  

  下载了SBO并且从SBO文档中获取其接口语法之后,我们将回到DBOR。

  下载SBO
  该演示例子项目直接使用两个SBO

  • Web Content Downloader
  • Zip Service Version 2
    然而这两个SBO依赖于其他一些SBO,因此我们将下载所有所需的SBO。下图显示在Component Exchange站点上出现的SBO组件清单。一一下载它们到您的计算机的文件夹中。



    相关SBO:









    下载该zip文件之后,将各个SBO解压到其自己的文件夹中。在一些情况中,解压缩分为两个步骤,因为有些下载的zip文件包含PDF文档而另一些zip文件只有SBO。



    每个文件夹包含一个SBO(如.jar文件),以及文档和示例文件。例如,webContentDownloaderService解压为:

  安装SBO
  SBO必须由 Java Classpath和Workshop IDE引用。尽管我们可以将SBO及其支持文件放在一起,但是我们为该演示例子所用的方法是:将5个.jar文件复制到Documentum为其自己的共享对象所用的文件夹中(在这里,已经有了dfc.jar、dfcbase.jar等)

  从下载的SBO文件夹中获取以下文件,并将它们复制到以下文件夹中。

  C:\Program Files\Documentum\Shared

  • webContentDownloaderService.jar
  • zipService.jar
  • autonamingService.jar
  • deepExportservice.jar
  • deepImportService.jar

    下图显示含有新SBO jar文件的部分目录清单,以及Documentum在其应用程序中共享的jar文件。



    在实际应用程序中,您可以创建另一个文件夹,将其自己的SBO放在这里,然后参照下面介绍的步骤引用它们。

  DBOR
  
Documentum Business Objects Registry(DBOR)包含每个系统可用业务对象的注册程序。每个SBO的实际注册信息(Java接口和版本号)包含在各个组件的文档中。

  注意:现在,DBOR存储库一般包含在c:\documentum\config\dbor.properties文件中。然而,Documentum声明:该位置和存储机制将来可能会改变,因此仅仅编辑文本文件是明智的。DborManage工具根据当前的Documentum实施将业务对象注册到正确的位置。

  典型的Documentum安装可能有一个如下所示的DBOR:

  

  我们将通过创建调用DborManage工具的批处理文件来添加新的SBO到注册表中。

  • 当用户解压缩DborManage工具时,已经有几个批处理文件了,其中之一(dborRegisterSBO.bat)用于注册单个SBO。关于调用语法的更多信息可从DborOverview.PDF文档中得到,该PDF文档包含在zip文件中。
  

我们需要将dfc.properties文件的路径(一般为C:\Documentum\Config)添加到dborRegisterSBO.bat文件中。加入如下一行

  set CLASSPATH=%CLASSPATH%;C:\Documentum\Config
  如下图所示:

  

 

  注册SBO
  对于本文,我们已经提供了一个示例自定义批处理文件(dborRegisterCustom.bat),以正确的语法多次调用注册批处理文件,每个SBO一次。

  您可以复制并粘贴以下代码到称为dborRegisterCustom.bat的新文件中。
  注意:

  • 如果dfc.jar文件不在C:\Program Files\Documentum\Shared中,应相应地更改该批处理命令的第一行。
  • 每次调用dborRegisterSBO.bat有三个参数,以空格隔开。
  • SBO_Name
  • Java_Implementation_Class
  • 版本
  • 每次调用dborRegisterSBO.bat必须在单独的一行中,不能分行。
  • 该批处理文件可以在组件下载到用户的机器之前运行。该批处理文件无需知道SBO的位置,也无需做任何依赖性检查,它仅仅是将关于接口的用户注册信息传递给DBOR。
  • 您可以复制并粘贴以下代码来创建其自己的批处理文件。
@REM dborRegisterCustom.batset CLASSPATH="C:\Program Files\Documentum\Shared\dfc.jar"@rem register Deep Import SBOcall dborRegisterSBO.bat com.documentum.devprog.deepimport.IDpDeepImportService com.documentum.devprog.deepimport.DpDeepImportService 1.0@rem register Deep Export SBOcall dborRegisterSBO.bat com.documentum.devprog.deepexport.IDpDeepExportService com.documentum.devprog.deepexport.DpDeepExportService 1.0@rem register AutoNaming SBOcall dborRegisterSBO.bat com.documentum.devprog.autonaming.IDpAutoNamingService com.documentum.devprog.autonaming.DpAutoNamingService 1.0@rem register Zip SBOcall dborRegisterSBO.bat com.documentum.devprog.common.zip.IDpZipService com.documentum.devprog.common.zip.DpZipService 2.0@rem register Web Content Downloadercall dborRegisterSBO.bat com.documentum.devprog.web.IDpWebContentDownloaderService com.documentum.devprog.web.DpWebContentDownloaderService 1.0

  当运行dborRegisterCustom.bat时,得到的dbor.properties文件如下图所示,既有原始注册信息也有新SBO的注册信息。

  

  以上就完成了Documentum端的设置,接下来我们将开始配置访问SBO的Workshop。

  设置Workshop环境
  为方便起见,在第一次下载DBOC时,我们将给安装的示例应用程序添加新的Web服务。该安装步骤在帮助文件中,以及本系列的前两篇文章中。

  注意:本文以下内容假定您已根据前两篇文章的步骤安装了示例应用程序。这就保证了您已经安装DBOC并且它可以查看您的Documentum资源。如果已经完成以上步骤,就可以继续了。

  打开Weblogic Workshop,然后选择 File | Open 来装载DBO控件示例应用程序文件:
BEA_HOME\weblogic81\samples\partners\Documentum\DBOSampleApp\BEADocumentumControlSamplesApp.work

BEA_HOME\weblogic81\samples\partners\Documentum\DBOSampleApp\BEADocumentumControlSamplesApp.work

  

  将Documentum jar文件添加到Weblogic Workshop IDE 的类路径。
  a. 从菜单中选择 Tools | Application Properties。
  b. 使用右边的滚动条拖动到底部。

  

  c. 在Server Classpath Additions中,单击Add Jar命令按钮。
  d. 添加我们将用在应用程序中的两个SBO jar文件。这些文件在我们较早前放在C:\Program Files\Documentum\Shared文件夹中的文件中。

  • webContentDownloaderService.jar
  • zipService.jar
  可以通过在单击文件名的同时按住Ctrl键来一次选择这两个jar文件,然后单击Select Jar。注意:在Classpath Additions区应当只添加这两个直接用在应用程序中的SBO。其他SBO(deepImportService等)只是通过这两个SBO来引用,而无需在这里添加。

  新的SBO引用将出现在server classpath additions区。

  至此我们已经设置了应用程序属性,现在应更新启动环境。
  a. 关闭Weblogic Workshop
  b. 如果Weblogic server处于活动中,则停止它。
  c. 给Weblogic Server classpath添加所有的SBO jar文件。

  • 打开Windows资源管理器,定位到用户运行的服务器所在的目录。如果用户不知道在哪里,则从Weblogic Workshop菜单中选择 Tools | Applications,查找名字为Server Home Directory的项。示例应用程序域的缺省位置为C:\bea812\weblogic81\samples\domains\workshop
  • 在记事本或任何编辑器中打开SetDomainEnv.cmd文件。
  • 找到构造类路径的命令行(它应以SET CLASSPATH=%PRE_CLASSPATH%;%WEBLOGIC_CLASSPATH%....开头),然后按如下所示来添加路径信息。这段代码定义了SBO和dfc.properties文件的路径,并且将其添加到类路径的末尾。
  • 退出并保存SetDomainEnv.cmd文件的更改。


  注意:

  • 可以并复制粘贴下面的代码。
  • jar名称必须与文件名称确切相配,而且它们是区分大小写的。例如,deepExportservice.jar是正确的,但是deepExportService.jar与从component exchange下载的SBO文件名不符。
  • 注意,您需要为将使用SBO(Workshop、Portal等)的每一个服务器域配置,制作类似如上所述的SetDomainEnv.cmd文件。
@REM --- Add Demo SBO jar files to the classpathSET SBO_PATH=C:\Program Files\Documentum\SharedSET SBO_DEEPIMPORT=%SBO_PATH%\deepImportService.jarSET SBO_DEEPEXPORT=%SBO_PATH%\deepExportservice.jarSET SBO_AUTONAME=%SBO_PATH%\autoNamingService.jarSET SBO_ZIP2=%SBO_PATH%\zipService.jarSET SBO_URL_DOWNLOAD=%SBO_PATH%\webContentDownloaderService.jarSET SBO_PATHS=%SBO_DEEPIMPORT%;%SBO_DEEPEXPORT%;%SBO_AUTONAME%;%SBO_ZIP2%;%SBO_URL_DOWNLOAD%;@REM PATH TO dbor.propertiesSET DCTM_PROPS=C:\Documentum\Config@REM append to the classpathSET CLASSPATH=%CLASSPATH%;%DCTM_PROPS%;%SBO_PATHS%@REM --- Classpath additions complete

  创建Demo Web Service
  打开Weblogic Workshop,并且如果必要的话,则选择File | Open来装载DBO控件示例应用程序文件:BEA_HOME\weblogic81\samples\partners\Documentum\DBOSampleApp\BEADocumentumControlSamplesApp.work,在示例应用程序中创建新项目:
  a. 右击应用程序树状结构的根(BEADocumentumControlSample)
   (如果该树状结构不可见,则选择View | Application first)
  b. 选择New | Project
  c. 选择Web服务项目并将其命名为DemoSbo
  d. 单击Create

  

  我们将创建的这个Web服务出现在项目文件夹中。我们还需要一个地方来存储我们将创建的控件文件(Weblogic要求它出现在项目的子文件夹中)。

  a. 在应用程序树状结构中右击DemoSbo项目文件夹
  b. 选择New | Folder
  c. 输入控件然后单击OK

  接下来,我们将创建使用两个DBOC实例的Web服务,每一个都指向不同的SBO。

  a. 在应用程序树状结构中右击DemoSbo项目文件夹
  b. 选择New | Web Service
  c. 输入zipFolderDemo然后单击Create
  d. 在设计窗口中右击Web服务
  e. 选择Add Control
  f. 选择Documentum Business Objects Control
  g. 按如下步骤完成Insert Control Wizard:
   1. 步骤1:命名控件变量为‘webContentCtl’(不含引号)
   2. 步骤2:创建新的business object control来使用,并且命名它为‘webContent’(不含引号)
   3. 步骤3:从有效的Service Based Objects下拉列表中选择DpWebContentDownloaderService
   4. 选择“Use control generated SessionManager with the following identity”并输入Docbase的占位符的值、用户和密码(在此我们使用xxx、yyy和zzz)。稍后我们将解释使用这些占位符的原因。
h. 单击Create。

  

  现在,我们给ZipService SBO添加控件,该SBO用来压缩Docbase文件夹的内容:

  a. 在设计窗口中右击Web服务。
  b. 选择Add Control。
  c. 选择Documentum Business Objects Control。
  d. 按如下步骤完成Insert Control Wizard:
    1. 步骤1:命名控件为‘zipFolderCtl’(不含引号)
    2. 步骤2:创建要使用的新业务对象控件,也命名为‘zipFolder’(不含引号)
    3. 步骤3:从可用的Service Based Objects下拉列表中选择DpZipService。
    4. 和前面一样,使用xxx、yyy、zzz占位符证书。
  e. 单击Create。

  接下来,我们将给Web服务添加单个方法

  a. 在设计窗口中右击Web服务
  b. 选择Add Method
  c. 插入newMethod1,重命名该方法为downloadURLandZip

  完成时,IDE应该看起来如下所示:

  

单击downloadURLandZip方法来进入Source View,用以下代码来取代该方法:
public void downloadURLandZip(String user, String password, String docBase, String urlAddress, String folderId, String zipFile) { try { webContentCtl.setSBODocbase(docBase); //Override design time settings. webContentCtl.setSBOUser(user); webContentCtl.setSBOPassword(password); URL url = new URL(urlAddress); //Create URL from address string webContentCtl.downloadWebContentIntoDocbase(url, new DfId(folderId), url.getHost(),null); zipFolderCtl.setSBODocbase(docBase); zipFolderCtl.setSBOUser(user); zipFolderCtl.setSBOPassword(password); zipFolderCtl.createZipInDocbase(new DfId(folderId), new DfId(folderId), zipFile); }u catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } }

  此时Workshop应显示一些红色下划线(表示错误),因为它还不知道代码引用的哪两个对象。我们通过在源代码视图顶部的如下两行来修正这个错误。它们使得编译器可以识别Documentum文件夹对象和Java URL对象。

import com.documentum.fc.common.DfId;
import java.net.URL;

  完成时,Workshop IDE IDE应该看起来如下图所示:

  

  IDE显示如下信息:

  • Application选项卡显示


    o 包含的新DemoSbo项目:
    o 控件文件夹和我们创建的两个控件的.jcx文件
    o zipFolderDemo.jwsWeb服务文件。

  • Source View窗口显示:
    o Import语句
    o 插入控件时生成的控件声明(完成docbase占位符的值、密码和用户)
    o downloadURLandZip方法
  • Properties Editor显示webContentCtl的具体内容,webContentCtl是Data Palette窗口中的当前选择。
  • Data Palette显示所选控件的方法。
  运行演示例子
  这个简单的Web服务将网页下载到Documentum文件夹中,然后生成一个包含该文件夹全部内容的zip文件,将该zip文件放到同一个文件夹中。下图显示Documentum WebTop屏幕,显示了演示例子文件夹的当前内容。

  通过查看该文件夹的属性,我们确定这个特定文件夹的r_objectID为0b00cb9c80033d57,对于下载的Web文件以及zip文件的源文件和目标文件,我们使用该文件夹作为存储库。

  

  接下来,我们切换回Workshop IDE并单击Start命令按钮(或者按Ctrl+F5键)

  Workshop构造了一个测试浏览器,在这里您可以输入Web服务单个方法的参数。

  注意,当前的webContentDownloader仅下载简单的网站源代码(它不会保存图片等)。记住:

  • 如果源代码含图片的相对路径,在Docbase中浏览文件时图片将不会出现(在大多数浏览器中会出现图片占位符)
  • 如果网页重定位到其他页面,可能会收到Web服务运行错误

  当然,测试的时候,您将使用自己Docbase中的文件夹的证书和r_objectID。单击downloadURLandZip命令按钮运行该方法。

  

测试浏览器显示方法的调用栈,结束于Service Response,如下所示:

  

  我们可以通过刷新Docbase文件夹(显示在WebTop中)的视图来检查结果,如下图所示。现在,该文件夹有两个原始文件、下载的网页(如简单的HTML文件)和含有其他三个文件的zip文件。

  

  关于演示例子代码
  如本文开头所提到的,该演示例子Web服务十分简单,但是示范了利用DBOC来使用多个SBO。

  • 在生产系统中,用户可能有好多方法来下载和压缩,可以是一个或者两个的组合。
  • 该演示例子代码使用控件的setSBOxxx方法来重写设计时作为占位符设置的证书。这并不常用,但是在这里用来演示这种技术。另一些演示例子,包括页面流示例,从头开始构建了一个Documentum SessionManager对象,并与使用setSBOSessionManager方法的SBO共享它。
  • 从Web服务可以生成新的Java控件,并可把它用在其他项目中。对于控件的嵌套层次没有限制。
  • 构造使用XML字符串的调用语法是合理的,如下所示:

  

  该代码能解析XML,并且通过url列表进行迭代(优先考虑与XMLBeans一起使用XSD schema),一一下载,然后使用DFC调用来在压缩之前给文档的元数据加入描述。

  经过Documentum工作流,可以发送zip文件给其他用户,或者将zip文件与其他Component Exchange SBO组合起来,作为邮件的附件发送给存储库对象。

  

  发展趋势。DBOC本质上是一些功能的包装,这些功能已经通过Documentum Business Objects Registry注册。它的工作原理类似于Workshop EJB控件,用于包装单个Enterprise Java Bean。这些控件的多个实例可以指向不同资源,在本文中是Web内容下载器和压缩服务。

  Business Object Framework是Documentum平台的战略部分,并且DBOC是第一个集成了J2EE框架的BOF实现。正像我们所做的那样,在WebLogic Workshop框架内工作的其他开发人员可以利用新的Extensions Development工具包的优点,以便构建界面和集成其自己的控件、服务和WLW IDE中的帮助系统。

  DBOC使得用户可以很方便地将Documentum SBO集成到WebLogic Workshop环境中。开发这种集成只需要用户下载并安装WebLogic Platform、插入DBOC、完成两个WL服务器设置和遵循示例的指导。

  在Weblogic环境中,将自己的SBO与来自Component Exchange的SBO集成起来是开发Documentum应用程序的最佳实践。

 

  作者注:特别感谢Documentum的Kevin O'Connor,感谢他创建DBOC项目、支持Java控件工作和对本系列文章所作的贡献。

  

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有