Skip to content

How to use the Web Content Manager API

The workspace is the heart of the HCL Web Content Manager API. Items are created, saved, deleted and searched for in the workspace item. A workspace is basically an interface to Web Content Manager that is associated with a user. Using a workspace item, the user can perform operations as that user.

To get a workspace item, you must first retrieve the WebContentService:

try
 {
    // Construct and initial Context
    InitialContext ctx = new InitialContext();

    // Retrieve WebContentService using JNDI name
    WebContentService webContentService = (WebContentService) 
    ctx.lookup("portal:service/wcm/WebContentService");
 }
 catch (NamingException ne)
 {
    System.out.print("Naming Exception: " + ne);
 }

You then request one from the repository singleton with the following call:

webContentService.getRepository().getWorkspace("my username", "my password");

To get a workspace item without specifying a user name and password, use one of the following calls:

  • When used in a portlet: Workspace workspace = webContentService.getRepository().getWorkspace( (Principal) portletRequest.getUser() );
  • When not used in a portlet: Workspace workspace = webContentService.getRepository().getWorkspace((Principal) request.getUserPrincipal() );

If the user is not recognized as a Web Content Manager user, or for some other reason could not be authenticated, an OperationFailedException will be thrown.

!!! note Only Web Content Manager users (including external LDAP users if enabled) are recognized. For example, A workspace cannot be retrieved using an LTPA token.

Operations available on the workspace include:

  • Searching for items with the provided "findBy" methods.
  • Creating new items of available editable types.
  • Saving and deleting editable items.

You must call endWorkspace() when finished with the workspace item.

webContentService.getRepository().endWorkspace();

!!! note You don't need to call endWorkspace() when using a JSP component as rendering and session management is handled by Web Content Manager.

!!! note You use the setCurrentDocumentLibrary method to make calls library-specific. If not specified, the default library that has been configured in the WCMConfigService service is used.