使用带有IBM Rational Application Developer的IBM Enterprise Content Management Java API开发应用程序

在你开始前

关于本教程

ECM解决方案越来越需要捕获和管理所有形式的非结构化内容,例如图像,表格,传真,办公文档,电子邮件,视频和音频。 为了最有效,此内容需要跨各种业务流程和应用程序集成,以便可以按需将其交付给用户。 这种集成通常涉及使用ECM解决方案的API,以便在运行中搜索相关内容。 例如,您可能要搜索与用户正在使用的客户编号相关的所有文档。

本教程旨在涵盖这一集成级别。 这是IBM ECM编程的简​​介。 本教程介绍了IBM Content Manager产品的Java API以及IBM FileNet P8 Content Manager产品。 此外,还介绍了IBM Information Integrator Content Edition的联合Java API,它能够访问一个或两个存储库。

当然,还有Java以外的其他API,例如Web Services,它们不在本教程的范围之内。

先决条件

本教程假定您是经验丰富的IBM Content Manager用户或IBM FileNet P8 Content Manager用户,并且具有使用Rational Application Developer进行Java应用程序开发的经验。

所需的开发平台

本教程基于三种软件环境:

  • IBM Content Manager API
    • IBM Content Manager
    • IBM Rational应用程序开发人员
  • IBM FileNet P8 Content Manager API
    • IBM FileNet P8内容管理器
    • IBM Rational应用程序开发人员
  • IBM Information Integrator内容版API
    • IBM Content Manager
    • IBM Information Integrator内容版
    • IBM Rational应用程序开发人员

使用的软件版本如下:

  • IBM Content Manager
    • Microsoft®Windows®2000 Server SP4
    • IBMWebSphere®Application Server 5.1.1.2
    • IBM Content Manager 8.3
  • IBM FileNet P8内容管理器
    • Microsoft Windows 2003企业服务器SP1
    • IBM WebSphere应用服务器6.2.0.13
    • IBM FileNet P8 4.0内容引擎
    • IBM FileNet P8 4.0应用程序引擎
  • IBM Information Integrator内容版
    • Microsoft Windows 2000 Server SP4
    • IBM WebSphere应用服务器5.1.1.2
    • IBM Content Manager 8.3
    • IBM Information Integrator内容版本8.3
  • IBM Rational应用程序开发人员
    • IBM Rational Application Developer 7.0.0

开发场景

需要访问ECM存储库中文档的用户的典型业务环境是显示与他们当前使用的实体相关的所有文档的列表,例如:客户,供应商,产品或项目。 然后从匹配的文档列表中选择一个或多个并选择查看它们。

您将编写的应用程序依次使用每个API来执行以下操作,从而满足这些基本要求:

  • 登录到存储库
  • 执行参数搜索
  • 检索结果集
  • 查看文档元数据
  • 查看文件

重要说明:本练习中的示例代码假定您将检索“简单”文档,即没有注释的单部分文档对象ECM产品的确允许使用更复杂的内容模型,这超出了本教程的范围。 。

IBM Content Manager API

搭建开发环境

设置IBM Rational Application Developer环境

Java构建路径

对于IBM Rational Application Developer中新创建的项目,除了Java运行时环境(JRE)之外,还需要以下Java Archive(JAR)文件(请参见下面的图1):

  • [IBMCMROOT] \ lib \ cmb81.jar
  • [IBMCMROOT] \ lib \ cmbsdk81.jar
  • [IBMCMROOT] \ lib \ cmbview81.jar
  • [IBMCMROOT] \ lib \ log4j-1.2.8.jar
  • [DB2ROOT] \ java \ db2java.zip

在此测试环境中,[IBMCMROOT]目录为:C:\ IBM \ db2cm8

在此测试环境中,[DB2ROOT]目录为:C:\ IBM \ SQLLIB

注:在IBM Content Manager 8.4(最近可用)中,所需的JAR文件略有不同:

不需要 db2java.zip。

而是,必须包含以下JAR文件:

  • [IBMCMROOT] \ lib \ db2jcc.jar
  • [IBMCMROOT] \ lib \ db2jcc_license_cu.jar
  • [IBMCMROOT] \ lib \ db2jcc_license_cisuj.jar
图1. Java构建路径
Java构建路径

这些JAR文件必须位于类路径中(请参见下面的图2)。

另外,将包含cmbicmenv.properties的目录添加到类路径—在此测试环境中,文件安装在以下位置:C:\ IBM \ db2cm8 \ cmgmt

图2.类路径
类路径

IBM Content Manager应用程序环境

在此示例代码中使用的库服务器是“ icmnlsdb”,如IBM Content Manager Administration Client中所示(请参见下面的图3)。

包含文档的Item Type为“客户”,而用于搜索的文档属性为“客户编号”,如IBM Content Manager Administration Client中所示(请参见下面的图3)。

两个文档(JPEG和GIF)已添加到该项目类型,客户编号为“ 12345”。

图3. IBM Content Manager管理客户端
IBM Content Manager管理客户端

如果IBM Content Manager应用程序环境设置正确,则使用eClient客户端,您应该能够以管理员身份登录并搜索客户编号=“ 12345”,如图4所示。

图4. IBM Content Manager eClient
IBM Content Manager eClient
清单1. IBM Content Manager示例代码
package developerWorks;

import java.io.*;
import java.io.File;
import com.ibm.mm.beans.*;

public class CMSampleCode {

     public static void main(String[] args) 
     {
          try{
               CMSampleCode cm8 = new CMSampleCode();
               // Log on to the CM Library Server
               CMBConnection connection = cm8.getCMConnection();
               // Search for documents
               CMBSearchResults documents = cm8.searchDocuments(connection);
               // Iterate through results set (documents) to retrieve each document
               for (int i = 0; i < documents.getCount(); i++) 
               {
                    // Get the document item
                    CMBItem item = documents.getItem(i);
                    // Get document metadata attributes
                    cm8.getDocumentMetaData(item);
                    // Retrieve the document
                   String fileName = cm8.retrieveDocument(connection, item);
                    // View the document using Explorer
                   cm8.viewDocument(fileName);
               }
          } catch (Exception e) {
               e.printStackTrace();
          }   
     }

     public CMBConnection getCMConnection() throws Exception
     {
          // Create connection bean
          CMBConnection connection = new CMBConnection();
          // Set properties on connection bean
          // Set the DataStore type to indicate Content Manager
          connection.setDsType("ICM");
          // Set the Library Server name
          connection.setServerName("icmnlsdb");
          // Set the user id and password for authentication
          connection.setUserid("cmuser");
          connection.setPassword("password");
          // Get the connection 
          connection.connect();
          System.out.println("Connected to CM server");
          return connection;
     }
     
     public CMBSearchResults searchDocuments(CMBConnection connection)
          throws CMBInvalidQueryException, CMBConnectFailedException, CMBException 
     {
          // Search across all CM Item Types
          String entity  = "/*"; 
          // Search where customer number is equal to 12345
          String condition = "[@CustomerNumber = \"12345\"]";
          // Create a query string to hold our search criteria
          String queryString = entity + condition;
          // Get an instance of query service bean
          CMBQueryService queryService = connection.getQueryService();
          // Set properties on the query service bean
          short queryType = CMBBaseConstant.CMB_QS_TYPE_XPATH;
          queryService.setQueryString(queryString, queryType);
          queryService.setAsynchSearch(false);
          // Perform search and create results set
          queryService.runQuery();
          // Get an instance of search results bean
          CMBSearchResults documents = new CMBSearchResults();
          documents.setConnection(connection);
          documents.newResults(queryService.getResults());
          // Return results set object
          return documents;
     }
     
     public void getDocumentMetaData(CMBItem item)
          throws CMBException, Exception 
     {
          // Get document metadata attributes
          String[] names = item.getAttrNames();
          String[] values = item.getAttrValues();
          // For each attribute, show the attribute name and value
          for (int i = 0; i < names.length; i++) {
               System.out.println(names[i] + ": " + values[i] + "  ");
          }
     }
     
     public String retrieveDocument(CMBConnection connection, CMBItem item)
          throws CMBException, IOException, Exception 
     {
          // Get an instance of data management bean
          CMBDataManagement dataManagement = connection.getDataManagement();
          // Set the current data item
          dataManagement.setDataObject(item);
          // Retrieve the original file name
          CMBObject object = dataManagement.getContent(0);
          String inputFileName = object.getOriginalFileName();
          // Parse the file name from the full path
          int pos=inputFileName.lastIndexOf("\\");
          inputFileName = inputFileName.substring(pos+1);
          // Write the document content to a new file 
          String fileName = System.getProperty("user.dir") 
               + File.separator + inputFileName;
          System.out.println("Output file name " + fileName); 
          FileOutputStream fileoutstream = new FileOutputStream(fileName);
          fileoutstream.write(dataManagement.getContent(0).getData());
          fileoutstream.close();
          // Return file name
          return fileName;
     }
     
     public void viewDocument(String fileName) throws Exception
     {
          // Use Explorer.exe to view the documents
          String VIEWER = "Explorer.exe ";
          Runtime rt = Runtime.getRuntime();
          // Launch the document with explorer
          String cmd = VIEWER + fileName;
          rt.exec(cmd);
     }
} // end main

运行示例代码的结果

在IBM Rational Application Developer环境中运行示例代码将启动在IBM Content Manager中找到的两个文档,如图5所示。

图5.运行时结果
运行时结果

IBM FileNet P8 Content Manager API

搭建开发环境

在IBM WebSphere Application Server中编辑属性文件

本教程中的样本代码使用Java远程方法调用技术运行在Internet星际协议(RMI-IIOP)上,以连接到WebSphere Application Server。 这要求配置公共对象请求代理体系结构(CORBA)安全支持。

注意 :如果您使用的是Web服务互操作性(WSI)传输,则此步骤也将有所不同。

编辑sas.client.props文件-默认情况下可以在以下位置找到该文件:C:\ Program Files \ IBM \ WebSphere \ AppServer \ profiles \ default \ properties。

确保设置了以下属性(请参见下面的图6):

  • com.ibm.CORBA.sercurityServerHost = hqdemo1
  • com.ibm.CORBA.sercurityServerPort = 2809
  • com.ibm.CORBA.loginSource =无
图6. sas.client.props文件属性
sas.client.props文件属性
设置IBM Rational Application Developer环境
Java构建路径

对于IBM Rational Application Developer中新创建的项目,除了JRE,还需要以下JAR文件(请参见下面的图7):

  • 杰斯·贾尔
  • log4j-1.2.13.jar
  • J2EE.jar

在此测试环境中,Jace.jar和log4j-1.2.13.jar安装在C:\ Program Files \ FileNet \ ContentEngine \ lib中。

在此测试环境中,J2EE.jar安装在C:\ Program Files \ IBM \ WebSphere \ AppServer \ lib中。

图7. Java构建路径
Java构建路径

这些JAR文件必须在类路径中,而且log4j.xml文件也必须在类路径中,以便日志记录成功初始化(请参见图8):

图8.类路径
类路径
VM参数

对于上述项目的新创建的类,请在IBM Rational Application Developer运行时参数中设置VM参数。

将清单2中的文本复制到图9所示的VM arguments框中。

清单2. VM参数
-Djava.security.auth.login.config=
"C:\Program Files\FileNet\ContentEngine\config\jaas.conf.WebSphere"
-Dcom.ibm.CORBA.ConfigURL="file:${WAS_HOME}\profiles\default\properties\sas.client.props"
-Djava.ext.dirs="${WAS_JAVA_HOME}\lib\ext;${WAS_JAVA_HOME}\lib;
${WAS_HOME}\classes;${WAS_HOME}\lib;${WAS_HOME}\lib\ext"
-Djava.naming.provider.url=iiop://localhost:2809
-Xbootclasspath/p:"${WAS_JAVA_HOME}\lib\ibmorb.jar;
${WAS_HOME}\profiles\default\properties"
图9. VM参数
虚拟机参数
变数

对于同一类,将清单3中的变量添加到IBM Rational Application Developer运行时参数中,如下面的图10所示。

清单3. VM变量
WAS_HOME		C:\Program Files\IBM\WebSphere\AppServer
WAS_JAVA_HOME	C:\Program Files\IBM\WebSphere\AppServer\java\jre
图10.程序参数变量
程序参数变量
IBM FileNet P8 Content Manager应用程序环境

如IBM FileNet P8 Enterprise Manager中所示,此示例代码中使用的域是“ p8demodom”。

如IBM FileNet P8 Enterprise Manager中所示,此样本代码中使用的对象存储为“ EVTFS”(图11)。

包含文档的文档类为“客户”,用于搜索的文档属性为“客户号”,如IBM FileNet P8 Enterprise Manager中所示(图11)。

两个文档(JPEG和GIF)已添加到此文档类中,客户编号为“ 12345”。

图11. FileNet企业管理器
FileNet企业管理器

如果FileNet P8 Content Manager应用程序环境设置正确,则使用Workplace客户端,您应该能够以管理员身份登录并搜索客户编号=“ 12345”,如图12所示。

图12. FileNet Workplace客户端
FileNet Workplace客户端
清单4. IBM FileNet P8 Content Manager示例代码
package developerWorks;
        
import java.io.*;
import java.util.Iterator;
import javax.security.auth.Subject;
import com.filenet.api.core.*;
import com.filenet.api.util.UserContext;
import com.filenet.api.collection.*;
import com.filenet.api.query.*;
        
public class P8SampleCode {
        
     public static void main(String[] args)
     {
          try{	
               P8SampleCode p8 = new P8SampleCode();
               // Log on to the P8 Content Engine
               ObjectStore store = p8.getP8Connection(); 
               // Search for documents
               DocumentSet documents = p8.searchDocuments(store);
               // Iterate through results set (documents) to retrieve each document
               Iterator it = documents.iterator();
               while (it.hasNext())
               {
                    // Get the document item
                    Document document = (Document)it.next();
                    // Get document metadata attributes
                    p8.getDocumentMetaData(document);
                    // Retrieve the document
                    String fileName = p8.getDocumentContent(document);
                    // View the document using Explorer
                    p8.viewDocument(fileName);
              }
          } catch (Exception e) {
               e.printStackTrace();
          }       
     }
        
     public ObjectStore getP8Connection()
     {
          // The connection URI includes the transport protocol (connection type),
          // host name, and port number that are used for server communication
          // Note these are the default P8 configuration parameters
          String uri = "iiop://hqdemo1:2809/FileNet/Engine";
          // Set the user id and password for authentication
          String username = "p8user";
          String password = "password";
          // Get the connection
          Connection conn = Factory.Connection.getConnection(uri);
          // The next 3 lines authenticate with the application server using the JAAS API
          Subject subject = UserContext.createSubject( conn, username, password, null);
          UserContext uc = UserContext.get();
          uc.pushSubject(subject);
          // Retrieve the specific Domain Object P8demodom
          Domain domain = Factory.Domain.fetchInstance(conn, "P8demodom", null);
          System.out.println("Domain Name is: "+ domain.get_Name());
          // Get the specific object store EVTFS
          ObjectStore store = 
               Factory.ObjectStore.fetchInstance(domain, "EVTFS", null);
          System.out.println("Objectstore is: "+ store.get_Name());
          // Return the Object Store
          return store;
     }
        
     public DocumentSet searchDocuments(ObjectStore os)
      {
           // Instantiate a search scope to search our object store
          SearchScope search = new SearchScope(os);
          // Instantiate an SQL object to hold our search criteria
          SearchSQL sql = new SearchSQL();
          // When searching, retrieve certain document
          sql.setSelectList("DocumentType, DocumentTitle, Description,
               ContentElements");
          // Search for all documents 
          sql.setFromClauseInitialValue("Document", "d", true);
          // Search where customer number is equal to 12345
          sql.setWhereClause("CustomerNumber='12345'");
          // Perform search and create results set
          DocumentSet documents = (DocumentSet)search.fetchObjects(sql, new
               Integer(50),null, Boolean.valueOf(true));
          // Return results set object
          return documents;
     }
        
        
     public void getDocumentMetaData(Document document)
     {
          // Get document metadata attributes
          System.out.println("Document type = " +
               document.getProperties().getStringValue("DocumentType"));
          System.out.println("Document title = " +
               document.getProperties().getStringValue("DocumentTitle"));
          System.out.println("Document description = " +
               document.getProperties().getStringValue("Description"))
     }
        
     public String getDocumentContent(Document document) throws Exception
      {
          // Initialize the output file name with the path where to store the document
          String fileName = System.getProperty("user.dir") + File.separator;
          // Get the content elements 
          ContentElementList contents = document.get_ContentElements();
          ContentElement content;
          Iterator itContent = contents.iterator();
          // iterate on the elements to retrieve the document
          while (itContent.hasNext())
          {
               content = (ContentElement)itContent.next();
               // Get the document file name
               fileName = fileName+((ContentTransfer)content).get_RetrievalName()
               System.out.println("fileName = " + fileName);
               // Get an input stream for reading document data
               InputStream inputStream = 
                    ((ContentTransfer)content).accessContentStream();
               // Get an output stream for writing document data
               OutputStream outputStream = new FileOutputStream(fileName);
               // Retrieve document content to the new file
               byte[] nextBytes = new byte[64000];
               int nBytesRead;
               while ((nBytesRead = inputStream.read(nextBytes)) != -1)
                    {
                         outputStream.write(nextBytes, 0, nBytesRead);
                         outputStream.flush();
                    }
               }
               // Return the newly created document file
               return fileName;
     }
        
     public void viewDocument(String fileName) throws Exception
      {
           // Use Explorer.exe to view the documents
          String VIEWER = "Explorer.exe ";
          Runtime rt = Runtime.getRuntime();
          // Launch the document with explorer
          String cmd = VIEWER + fileName;
          rt.exec(cmd);
     }
        
} // end main

运行示例代码的结果

在IBM Rational Application Developer环境中运行示例代码将启动在IBM FileNet P8 Content Manager中找到的两个文档,如图13所示:

图13.运行时结果
运行时结果

IBM Information Integrator内容版API

在本部分中,您将使用IBM Information Integrator Content Edition API从IBM Content Manager检索文档。

搭建开发环境

设置IBM Rational Application Developer环境
Java构建路径

对于IBM Rational Application Developer中新创建的项目,除了JRE之外,还需要以下JAR文件(请参见下面的图14):

  • [IICE_HOME] \ lib vbr.jar
  • [IICE_HOME] \ opt \ datastore.jar
  • [IICE_HOME] \ opt \ log4j.jar
  • [IICE_HOME] \ opt \ vbr_subscription.jar
  • [IICE_HOME] \ opt \ vbr_vrepo.jar
  • [IICE_HOME] \ opt \ vbr_wc.jar
  • [WAS_HOME] \ lib \ bootstrap.jar
  • [WAS_HOME] \ lib \ disthub.jar
  • [WAS_HOME] \ lib \ ecutils.jar
  • [WAS_HOME] \ lib \ ejbportable.jar
  • [WAS_HOME] \ lib \ ffdc.jar
  • [WAS_HOME] \ lib \ idl.jar
  • [WAS_HOME] \ lib \ iwsorb.jar
  • [WAS_HOME] \ lib \ messagingClient.jar
  • [WAS_HOME] \ lib \ naming.jar
  • [WAS_HOME] \ lib \ namingclient.jar
  • [WAS_HOME] \ lib \ ras.jar
  • [WAS_HOME] \ lib \ tcljava.jar
  • [WAS_HOME] \ lib \ tx.jar
  • [WAS_HOME] \ lib \ txClientPrivate.jar
  • [WAS_HOME] \ lib \ utils.jar
  • [WAS_HOME] \ lib \ utils.jar
  • [WAS_HOME] \ lib \ wsexception.jar
  • [WAS_HOME] \ installedApps \ <节点> \ VeniceBridge.ear \ vbr_access_services.jar
  • [WAS_HOME] \ installedApps \ <节点> \ VeniceBridge.ear \ vbr_view_services.jar

在此测试环境中,[IICE_HOME]目录为C:\ IBM \ IICE。

在此测试环境中,[WAS_HOME]目录为C:\ IBM \ WebSphere \ AppServer。

在此测试环境中,<node>目录为cmdemo。

图14. Java构建路径
Java构建路径

这些JAR文件和路径必须在类路径中(请参见图15):

图15.类路径
类路径
VM参数

对于上述项目的新创建的类,请在IBM Rational Application Developer运行时参数中设置VM参数。

将清单5中的文本复制到VM arguments框中,如图16所示。

清单5. VM参数
-Djava.naming.factory.initial=com.ibm.websphere.naming.WsnInitialContextFactory 
-Djava.naming.provider.url=iiop://localhost:2810
图16. VM参数
VM参数
IBM Content Manager应用程序环境

如IBM Content Manager Administration Client中所示,此示例代码中使用的库服务器为“ icmnlsdb”(请参见下面的图17)。

包含文档的项目类型为“客户”,用于搜索的文档属性为“客户编号”,如IBM Content Manager Administration Client中所示(请参见下面的图17)。

向该物料类型添加了两个文档(JPEG和GIF),客户编号为“ 12345”。

图17. IBM Content Manager管理客户端
IBM Content Manager管理客户端

如果IBM Content Manager应用程序环境设置正确,则使用eClient客户端,您应该能够以管理员身份登录并搜索客户编号=“ 12345”,如图18所示。

图18. IBM Content Manager eClient
IBM Content Manager eClient
IBM Information Integrator内容版应用程序环境

本节中的示例代码假定您已经为IBM Content Manager和IBM Information Integrator Content Edition配置了有效的连接(请参见图19)。

图19. IBM Content Manager连接器
IBM Content Manager连接器

如果正确设置了与IBM Content Manager的IBM Information Integrator Content Edition连接,那么使用IBM Information Integrator Content Edition Web Client,您应该能够以管理员身份登录并搜索客户编号=“ 12345”,如图20所示。 。

图20. IBM Information Integrator内容版Web客户端
IBM Information Integrator内容版Web客户端
清单6. IBM Information Integrator内容版示例代码
package developerWorks;
        
import java.io.*;
import com.venetica.vbr.client.*;
        
public class IICESampleCode {
        
     public static void main(String[] args) 
     {
          try{
               IICESampleCode iice = new IICESampleCode();
               // Log on to the CM Library Server
               Repository repository = iice.getIICEConnection();
               // Search for documents
               IResultSet documents = iice.searchDocuments(repository);
               // Iterate through results set (documents) to retrieve each document
               for (int i = 0; i  < documents.getRowCount(); i++) 
               {
                    // Get the document item
                    ResultRow item = documents.getRowAt(i);
                    Content content = repository.getContent(item.getID(),
                         Content.LATEST_VERSION);
                    // Get document metadata attributes
                    iice.getDocumentMetaData(documents, item);
                    // Retrieve the document
                    String fileName = iice.retrieveDocument(content);
                    // View the document using Explorer
                    iice.viewDocument(fileName);
               }
          } catch (Exception ex) {
               ex.printStackTrace(System.err);
          }
     }
        
      public Repository getIICEConnection() throws Exception
      {
          // Get the repository id for our Content Manager IICE connection
          User user = new User();
          user.initialize();
          Repository repository =
               user.getRepositoryByID("ContentManagerConnector");
          // Set the user id and password for authentication
          String userid = "cmuser"
          String password = "password";
          // Get the connection 
          repository.logon(userid, password, "");
          System.out.println("Connected to CM server");
          return repository;
     }
        
     public IResultSet searchDocuments(Repository repository) throws Exception
     {
          // Create a query string to hold our search criteria
          Query queryString = repository.createQuery();
          // Return only specific document attributes
          queryString.addSelectionProperties("CustomerNumber");
          queryString.addSelectionProperties("DocumentType");
          queryString.addSelectionProperties("Description");
          // Search where customer number is equal to 12345
          queryString.setSelectionCriteria("CustomerNumber = '12345'");
          // Perform search and create results set
          IResultSet documents = queryString.executeContentQuery();
          // Return results set object
          return documents;
     }	 
        
     public void getDocumentMetaData(IResultSet documents, ResultRow item)
          throws Exception
     {
          // Get document metadata attributes
          String[] names = documents.getColumnNames();
          // For each attribute retrieved
          for (int i = 0; i  < documents.getColumnCount(); i++) {
               // Show the attribute name and value
               System.out.println(names[i] + ": " + item.getColumnValue(i) + "  ");
          }
     }
        
     public String retrieveDocument(Content content)throws Exception
     {
          // Retrieve the original file name
          String inputFileName = content.getDefaultFileName();
          // Parse the file name from the full path
          int pos=inputFileName.lastIndexOf("\\");
          inputFileName = inputFileName.substring(pos+1);
          // Write the document content to a new file 
          String fileName =
          System.getProperty("user.dir") + File.separator + inputFileName;
          System.out.println("Output file name " + fileName); 
          content.getNativeContentAsFile(fileName);
          // Return file name
          return fileName;
     }
        
     public void viewDocument(String fileName) throws Exception
     {
          // Use Explorer.exe to view the documents
          String VIEWER = "Explorer.exe "; 
          Runtime rt = Runtime.getRuntime();
          // Launch the document with explorer
          String cmd = VIEWER + fileName;
          rt.exec(cmd);
     }
     
}// end main

运行示例代码的结果

在IBM Rational Application Developer环境中运行示例代码将启动在IBM Content Manager中找到的两个文档,如图21所示。

图21.运行时结果
运行时结果

结论

IBM Content Manager,IBM FileNet P8 Content Manager和IBM Information Integrator Content Edition的Java API提供了在企业应用程序中集成企业内容管理功能的关键元素。 IBM Rational Application Developer是用于开发简单或复杂J2EE应用程序的出色工具。 本教程向您展示了如何配置准备使用这些Java API进行开发的Rational Application Developer环境。 它还显示了如何满足最常见的ECM集成要求,即能够登录,搜索,检索和查看符合特定选择标准的文档。


翻译自: https://www.ibm.com/developerworks/data/tutorials/dm0804hulme/dm0804hulme.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值