Skip to main content link. Accesskey S
  • Anonymous
  • Log on
  • Help
  • IBM logo
  • WebSphere Portal Family wiki
  • All Wikis
  • Home
  • Community Articles
  • Product Documentation
  • Learning Center


Search

Advanced Search

Categories

Tag Cloud

  • 6.0
  • 6.1
  • 6.1.0.1
  • 6.1.5
  • 7.0
  • 7.0.0.2
  • 8.0
  • actions
  • administrator
  • authoring
  • Banking template
  • best practices
  • blogs
  • builder
  • building a site
  • caching
  • catalog
  • Clickstream Engine
  • clusters
  • ConfigEngine tasks
  • content
  • customizing
  • databases
  • demo
  • deployment
  • deployment scenario
  • developer
  • developing
  • device class
  • elements
  • examples
  • Express
  • feature set
  • fix pack 2
  • Government to Business template
  • info center
  • information center
  • installation
  • installing
  • LDAP
  • Learning
  • libraries
  • LikeMinds Recommendation Engines
  • logging
  • mentors
  • message catalog
  • messages
  • migration
  • mobile
  • mobile devices
  • mobile experience
  • mobile experience 8.0
  • mobile theme
  • mobile webkit
  • MPA
  • multiplatform
  • pages
  • performance
  • personalization
  • planning
  • portal
  • Portal 6.1
  • Portal 8 theme
  • portlets
  • product doc
  • product documentation
  • projects
  • properties
  • Redbooks
  • Redbooks Wiki
  • remember me cookie
  • resources
  • REST
  • Retail Vendor template
  • rules
  • samples
  • search
  • security
  • sifters
  • sites
  • solutions catalog
  • syndication
  • test infrastructure
  • theme
  • theme optimization
  • topologies
  • troubleshooting
  • tutorials on personalization
  • video
  • wcm
  • web content
  • webkit
  • WebSphere Portal
  • WebSphere Portlet Factory
  • wikis
  • workflows
  • worksheet
  • XML configuration interface
  • z/os
  • zos
InformationInformation
You are currently viewing machine translated content. IBM translation might be available. Click IBM Translated Product Documentation to see what is available.X


Home > FAQs about Web Content Manager > Troubleshooting WCM API, How To, and Sample Code
Rate this article 1 starRate this article 2 starsRate this article 3 starsRate this article 4 starsRate this article 5 stars

Troubleshooting WCM API, How To, and Sample Code 

expanded Abstract
collapsed Abstract
Troubleshooting common issues with the WCM API. Sample code and How To instructions.
ShowTable of Contents
HideTable of Contents
  • 1 Troubleshooting WCM API, How To, and Sample Code
  • 2 API Overview
  • 3 Troubleshooting common issues and exceptions
    • 3.1 java.lang.NoSuchMethodError
    • 3.2 Custom applications work for Admin or anonymous users only
    • 3.3 workspace.findComponentByName(menuName) returns no results on subscriber
    • 3.4 Can't get a workspace for the current user in a JSP, have to use getSystemWorkspace
    • 3.5 OutofMemoryError OOM using WCM API
    • 3.6 java.lang.ClassCastException com.ibm.worlplace.wcm.api.WebContentServiceImpl
    • 3.7 WCM API getCurrentApprovers method returning approvers for prior stage
    • 3.8 Error while calling a function updateItems of PLS data manager
    • 3.9 Why am I not able to find content items when using findByContentPath
  • 4 Performance issues related to the WCM API
    • 4.1 Using the IsaLite Split Second AspectJ Tool
    • 4.2 The WCM API is very slow when using WCM_API.getRepository()
    • 4.3 com.ibm.workplace.wcm.api.exceptions.AuthorizationException: IWKPY1015X
  • 5 How To questions related to the WCM API
    • 5.1 How to set the recommended starting weight for a WCM API Application
    • 5.2 How to get the approvers for the current stage in custom workflow
    • 5.3 How to get the URL to the file resource component embedded within a content item
    • 5.4 How to pass a parameter argument from html to jsp
    • 5.5 How to get the Authoring template for a content item
    • 5.6 How to purge an item using WCM API
    • 5.7 Considerations using getUserPrinciple
    • 5.8 Quick Start WCM API Sample jsp using findbyname
    • 5.9 How to update a content rich text element using the WCM API
    • 5.10 How to retrieve file name stored in WCM library file resource component using the API ReferenceComponent
    • 5.11 How to use the WCM API to render a Personalization (PZN) component
    • 5.12 How to create or delete a content link using WCM API
    • 5.13 How to limit the libraries searched by WCM API search functions
    • 5.14 How to invoke the WCM API Remotely
  • 6 Web sites with sample implementation of WCM API
  • 7 Published technotes related to the WCM API
  • 8 About the author

Troubleshooting WCM API, How To, and Sample Code



API Overview



The WCM API can be used to supplement the standard operations available through WCM Authoring and Rendering Portlets. There is a good overview of the operations available via the WCM API in the Portal Infocenter here:

http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1/topic/com.ibm.wp.ent.doc_v6101/wcm/wcm_dev_api_overview.html


The complete up-to-date list of interfaces/methods available for the WCM API is listed in the javadoc, which is automatically laid down with all Portal WCM Content installations, and is located in directory:

/installedApps//wcm.ear/ilwwcm.war/webinterface/api-javadoc/index.html


Also review the WCM API best practices document here:

http://www-10.lotus.com/ldd/portalwiki.nsf/dx/07162008083719PMWEB2RD.htm


The WCM Forum is another good source for information on the WMC API if you can't find your issue in this troubleshooting guide. The WCM Forum is located here:

http://www-10.lotus.com/ldd/wcmforum.nsf


If an issue is encountered and no solution is found in this troubleshooting guide, in the WCM Forum, or on the web, it may help to collect and review the WCM API mustgather documentation that will be requested by L2 support:

http://www-01.ibm.com/support/docview.wss?rs=688&uid=swg21316119 6.1.x WCM API Mustgather

http://www-01.ibm.com/support/docview.wss?uid=swg21236371 6.0.x WCM API Mustgather


Troubleshooting common issues and exceptions



Some issues and exceptions are listed below. If your issue is not found in this document, search these additional documents related to WCM API Troubleshooting:

http://www.ibm.com/developerworks/lotus/documentation/d-ls-wcmapi/ Implementing common extension scenarios using IBM Lotus Web Content Management 6.1 APIs

http://www-10.lotus.com/ldd/portalwiki.nsf/dx/05242009090236PMWEB398.htm Solutions to common implementation issues for IBM WebSphere Portal Content APIs


java.lang.NoSuchMethodError



The error is most often caused by a failure to run the "update-wcm" task after installing a WCM Fix. This leads to a mismatch between the WCM Applications and the WCM Base code level. A similar problem can occur with custom applications that use the WCM API if they include older versions of the WCM Jar files. WCM Classes are updated on a regular basis, adding and removing methods and modifying their signature. Calling an updated or removed method will lead to the NoSuchMethodError.

Another common cause is the presence of a test fix compiled for a certain release level and left in place when a fix or fixpack is applied.

Another possible cause is a test fix or official APAR Fix that has been compiled with the wrong code base. Uninstall fix/fixes and run update-wcm task to correct.


SOLUTION:

Verify update-wcm task completed BUILD SUCCESSFUL after the last fix was installed or uninstalled

Search for old test fixes (for example an additional "com" directory) in .../websphere/Portalserver/wcm/prereq.wcm/wcm/shared/app

Also search the wcm portlets and wcm.ear directory under /installedApps

Check any custom applications that use the WCM API for older versions of the WCM Jar files.


Custom applications work for Admin or anonymous users only



Typical symptoms:

-Content renders for Admin users only

-Using WCM API with jsp components. Content will render for anonymous users but not for All Users or All authenticated Users when logged in

-Custom applications work first time only for anonymous users

-IWKPY1015X IWKPY1016X When logged in with User Role on content and using API to access that content IWKPY1015X: Unauthorised access IWKPY1016X: Unauthorised access on Contents by
CAUSE:

The default requirement is that users running the custom WCM API application have at least Contributor role on the objects accessed in the Workspace. This can be lowered to User role
using useUserAccess method.

SOLUTION:

Call the API "workspace.useUserAccess(true)" before calling other workspace methods that act on objects for which Contributor role would otherwise be required.

See technote: http://www-01.ibm.com/support/docview.wss?uid=swg21388943

workspace.findComponentByName(menuName) returns no results on subscriber



SOLUTION:

findComponentByName is case-sensitive. One workaround is to edit the NAME field of the menu and resave the menu on the subscriber.

Can't get a workspace for the current user in a JSP, have to use getSystemWorkspace



The problem has to do with J2EE security basically, that the code that is running (JSP) is running outside of a
J2EE security context so the user context can't be validated.

SOLUTION:

Only use initworkspace when a valid user context exists:

OutofMemoryError OOM using WCM API



There are often cases where the OutOfMemoryError is caused by the application processing too much data in the workspace.

SOLUTION:

1. Reduce the number of nodes processed per workspace
2. Manually clear the workspace state at an interval that can be handled by the system's memory
3. Set iterator.pagesize to a lower level in WCMConfigService.properties. That reduces the number of items returned by the iterators.

java.lang.ClassCastException com.ibm.worlplace.wcm.api.WebContentServiceImpl



This error may occur when creating a custom portlet that uses the WCM API if the custom portlet also includes the ilwwcm JAR files. This is because the included JAR files can conflict with the ilwwcm JAR files that are deployed and updated with WCM.


May also see this error:

Com.ibm.workplace.wcm.api exceptions ServiceNotAvailableException

SOLUTION:

Remove illwcm jar files from the custom portlet

WCM API getCurrentApprovers method returning approvers for prior stage



Using a custom workflow action which runs when entering a stage. This action makes API call getCurrentApprovers() to get the approvers for the current stage. However, this call is returning the approvers for the previous stage.

Solution:

The getCurrentApprovers() call should be invoked on the content or document passed in to the custom action in the execute(Document p_document) method. Only this object would contain the approvers for the current stage. If instead
you use the object which was retrieved from the repository using the inWorkspace.getById() call (in WorkflowUtil class), the object retrieved from the repository would be the one from the previous save and hence it would contain all information for the first stage.

This general process/pseudocode to implement:

Get the docId of the content
Create a new Workspace
Set to use DN workspace.useDistinguishedNames(true);
Content myContent =(Content)ws.getById(thisId);
String approvers = myContent.getCurrentApprovers()

Error while calling a function updateItems of PLS data manager



When accessing the WCM API through the use of an EJB, if the transaction type of the EJB is set to Container Managed, the API does not work as expected and will throw following exceptions in logs.

ContentServic E Error while calling a function updateItems of PLS data manager.: Error while calling
a function updateItems of PLS data manager.
javax.jcr.StaleValueException: Error while calling a function updateItems of PLS data manager.: Error while calling a function updateItems of PLS data manager...

SOLUTION:

Set the transaction type of the EJB to Bean managed, and not Container managed, while accessing the WCM API through the use of EJB

Why am I not able to find content items when using findByContentPath


Retrieval of obects from repository failed with error javax.jcr.ItemNotFoundException: /contentRoot/icm:libraries[15]/Content/etc...

SOLUTION:
Need to include the library name in the method call. Example:
Library = Test
Site Area = Test
Site Area = 1234
Content = content item

path must be provided like this = Test(library)/Test(site area)/1234(site)/content item
If the library name is not specified in the above example the path will be built like this:
/contentRoot/icm:libraries(#)/Content/1234/content item
This will result in a ItemNotFoundExcetion

Performance issues related to the WCM API



Using the IsaLite Split Second AspectJ Tool



AspectJ functionality can be very useful troubleshooting WCM API performance issues. The IsaLite tool will automatically weave the WCM jar files with the needed aspects and produce a spread sheet output identifying the methods with the longest delays in execution.

The IsaLite Tool is available for download here:

http://www-01.ibm.com/support/docview.wss?ca=wpwcmfaq&rs=477&uid=swg24008662

The WCM API is very slow when using WCM_API.getRepository()



getWorkspace("wcmapiuser", "wcmapiuser") method call compared to getRepository().getWorkspace(request.getUserPrincipal
getWorkspace("wcmapiuser", "wcmapiuser") method call compared to getRepository().getWorkspace(request.getUserPrincipal

SOLUTION:

PK50703 provides a login and logout methods on the workspace object. This will provide performance very close to the tesstcase using the principal login. ( i.e. getRepository().getWorkspace(request.getUserPrincipal()) So instead of using above method, you can use newly provided methods to improve API performance.

com.ibm.workplace.wcm.api.exceptions.AuthorizationException: IWKPY1015X




com.ibm.workplace.wcm.api.exceptions.AuthorizationException: IWKPY1015X:
Unauthorised access by {PrincipalInformation: {dn:
uid=libuser,o=defaultWIMFileBasedRealm,

SOLUTION:

Call API method "workspace.useLiveAccess(true)" just before calling the workspace.getById() method . Otherwise , the default access context is "Contributor" and hence method workspace.getById() fails for content or library component even though the user is given "User" access.



How To questions related to the WCM API



How to set the recommended starting weight for a WCM API Application



If need a specific text for applications that use WCM API within an enterprise app (e.g. your custom servlet) to make sure that the applications have a start weight greater then WCMs start weight.

This is the property that needs to be set in the web.xml of your application

30
or you can edit it through the WAS admin console ->enterprise applications -> 'your application' > startup options

Recommended value is '30'

See also the best practices url above

How to get the approvers for the current stage in custom workflow



The getCurrentApprovers() call should be invoked on the content or
document passed in to the custom action in the execute(Document p_document) method.

Only this object would contain the approvers for the current stage. In one case the customer was not using this object. Instead
they are using the object which was retrieved from the repository using the inWorkspace.getById() call (in WorkflowUtil class). The object retrieved from the repository would be the one from the previous save and hence it would contain all information for the first stage.

General process/pseudo code:

Get the docId of the content
Create a new Workspace
Set to use DN
Content myContent =(Content)ws.getById(thisId);
String approvers = myContent.getCurrentApprovers();

How to get the URL to the file resource component embedded within a content item



..
FileComponent myFile =
(FileComponent)content.getComponent(fileComponentName);
workspace.render(yourRenderingContext, myFile);
will return like /wps/wcm/myconnect/path/to/file/file.jpg?MOD=AJPERES
....

How to pass a parameter argument from html to jsp



<a href="host:port/wps/wcm/jsp/html/yourJSP.jsp?DocId=whateverthecurrentdocidis">Custom Reject Link</a>
 


How to get the Authoring template for a content item



Pseudocode:

Interator....
DocumentID myContentId = ContentId.nextId();

Content myContent = (Content)workspace.findById(myContentId);

DocumentId contentATID = myContent.getAuthoringTemplateID;

AuthoringTemplate myAuthoringTemplate = (AuthoringTemplate)workspace.findById(contentATID);

out.println("Authoring Tempate = " + myAuthoringTemplate.getName);


How to purge an item using WCM API



Use workspace.purge after workspace.delete

purge(DocumentId id)
Purges an item with the given DocumentId.

Runstats on db if server hangs purging a large number of items. All item syndication sends versions by default but the versioning itself can be disabled with a config option (search infocenter for "versioningStrategy". Purging content takes a long time. Should be done off hours.

Considerations using getUserPrinciple



WCM keeps a list of the valid sessions anytime a wcm page has been accessed. For any newly created sessions, the user is taken from the request which is passed in from portal. If it is a portlet request wcm uses:

PortletRequest portletRequest = (PortletRequest) p_request;

user = portletRequest.getUser();

where p_request is a HttpServletRequest if it is a servlet request wcm uses:

Principal principal = p_request.getUserPrincipal();

The PortletRequest.getUserPrincipal() can be invoked directly on each PortletRequest object. There is no HTTP(Servlet)Request anywhere where it's safe to read the user from or cast the object. Inside a JSP e.g. View.jsp included by a portlets doView() method there is a context variable portletrequest after the the init tag was called. This request object also holds the user object.

If getUserPrincipal returns null (when invoking jsp via servlet) see:

http://www.ibm.com/developerworks/forums/thread.jspa?threadID=180190


Quick Start WCM API Sample jsp using findbyname



Create findbyname.jsp to contain the code pasted below. Change to the name of one or your library, authoring template and content items. Copy the file to

...\ibm\WebSphere\wp_profile\installedApps\\wcm.ear\ilwwcm.war\jsp\html

Run the jsp via this url:

http://hostname:port/wps/wcm/jsp/html/findbyname.jsp


JSP Contents:



<%@ page import="com.ibm.workplace.wcm.api.*"%>
<%@ page import="com.ibm.workplace.wcm.api.exceptions.*"%>
<%@ page import="java.util.*,javax.servlet.jsp.JspWriter,java.io.*"%>

<%

 try {

DocumentId docId=null;

DocumentIdIterator itemsIterator=null;

   Workspace myworkspace = WCM_API.getRepository().getSystemWorkspace();
   
   if ( myworkspace == null )    {
      out.println( "Unable to get a valid workspace.<br/>" );
   }
   else {
      out.println("Found workspace<br/>");
   }
   
   myworkspace.login();
 
   //Set the workspace to the correct library.
 
   DocumentLibrary MyLibrary = myworkspace.getDocumentLibrary("Test");
    
   if (MyLibrary == null)
   {
       out.println("Library is null<br/>");

   }
   else {
      
       out.println("<br/>My lib is not null");

       myworkspace.setCurrentDocumentLibrary(MyLibrary);
   }

   itemsIterator = myworkspace.findByName(DocumentTypes.AuthoringTemplate, "JSPAuthoringTemplate");

   docId = (DocumentId) itemsIterator.next();
    
   out.print("<br/><br/>Document id: " + docId.toString());

   itemsIterator = myworkspace.findByName(DocumentTypes.Content, "JSPContent");

   docId = (DocumentId) itemsIterator.next();
    
   out.print("<br/><br/>Document id: " + docId.toString());

   myworkspace.logout();
 }

 catch (Exception e) {

out.println("Exception " + e.getMessage());
e.printStackTrace();
 }

%>



How to update a content rich text element using the WCM API



finds the document id of the content items that match by name
DocumentIdIterator docIdIterator = ws.findByName(DocumentTypes.Content, "testcontent");
DocumentId docId;
Content currentContent;


loops through the document id's found in the iterator
while(docIdIterator.hasNext())
{
docId = (DocumentId)docIdIterator.next();

get the current content item
currentContent = (Content)ws.getById(docId);

standard out log message
System.out.println("Log: Testing WCM API: Retrieved content name = "
+ (String)currentContent.getName());

get the content's rich text element by name
RichTextComponent RTECmpnt = (RichTextComponent) currentContent.getComponent("RTE");

standard out log message
System.out.println("Log: Testing WCM API: My Rich Text = " + RTECmpnt.getRichText());

set the text for the content's rich text element
RTECmpnt.setRichText("Testing WCM API: Setting Rich Text");

set the rich text element to persist the changes
currentContent.setComponent("RTE",RTECmpnt);

save the content item to persist the changes
ws.save(currentContent);

}
end while

How to retrieve file name stored in WCM library file resource component using the API ReferenceComponent



finds the document id of the content items that match by name
DocumentIdIterator docIdIterator = ws.findByName(DocumentTypes.Content, "testcontent");
DocumentId docId;
Content currentContent;


loops through the document id's found in the iterator
while(docIdIterator.hasNext())
{
docId = (DocumentId)docIdIterator.next();

get the current content item
currentContent = (Content)ws.getById(docId);

standard out log message
System.out.println("Log: Testing WCM API: Retrieved content name = "
+ (String)currentContent.getName());

get the content's component reference element by name
ContentComponent myCmpnt =
(ContentComponent) currentContent.getComponent("MyComponent");

standard out log message
System.out.println("Log: Testing WCM API: My Component getName = "
+ (String)myCmpnt.getName());

Typecast using ReferenceComponent in order to access the library component
stored in the content's component reference element

ReferenceComponent myRefCmpnt;
myRefCmpnt = (ReferenceComponent)myCmpnt;

Get the LibraryComponent which your content is referencing
LibraryComponent myLibCmpnt = myRefCmpnt.getComponentRef() ;

standard out log message
System.out.println("Log: Testing WCM API: My Library Component name = "
+ myLibCmpnt.getName());

Use the instanceof method to confirm the library component type.
For example, this checks if your component is a Library File Component.

if (myLibCmpnt instanceof LibraryFileComponent)
{

In this example, the component reference holds a LibraryFileComponent.
This will get the file name of the file stored in the LibraryFileComponent.
LibraryFileComponent fileCmpnt;
fileCmpnt= (LibraryFileComponent)myLibCmpnt;

standard out log message
System.out.println("Log: Testing WCM API: My Library File Component: File name = "
+ fileCmpnt.getFileName() );
}
end if statement

end while

How to use the WCM API to render a Personalization (PZN) component



finds component that matches by name
DocumentIdIterator componentIdIterator = workspace.findComponentByName("PZNCMPT");
DocumentId docId;
LibraryComponent component;
String componentName = "";
String libraryPath = "/MyLibrary";
String sitePath = "/site/sitearea";

Create the rendering context
RenderingContext context = workspace.createRenderingContext(pageContext.getRequest(),pageContext.getResponse(), new java.util.HashMap(), "http://localhost:10038/wps/wcm", "/connect");

Set the path (Context) to the for the site area where the component will be rendered
context.setRenderedContent(libraryPath + sitePath);

standard out log message to browser
out.println("Log: Testing WCM API: Context Path = " + context.getPath() + "

");

loops through the component id's found in the iterator
while(componentIdIterator.hasNext())
{
docId = (DocumentId)componentIdIterator.next();
component = (LibraryComponent) workspace.getById(docId);
componentName= (String)component.getName();

standard out log message to browser
out.println("Log: Testing WCM API: Component name = " + componentName + "

");

Get the rendered string
if (component instanceof LibraryComponent)
{
standard out log message to browser
out.println("Log: Testing WCM API: " + componentName
+ " is an instance of LibraryComponent

");

String renderedContent = workspace.render(context, component);

standard out log message to browser
out.println("Log: Testing WCM API:: Passed workspace.render(context, component)

");

Render the PZN Component
out.println("
Render PZN Component: Test Result follows:
" + renderedContent + "
");

end if statement

standard out log message to browser
out.println("The End
");

end while

How to create or delete a content link using WCM API



ContentLink objContentLink =
workspaceLink.createContentLink(oDocumentIdContent,
oDocumentIdSiteArea,null, ChildPosition.START);
                  workspaceLink.save( objContentLink);

And workspace.delete(documentId) deletes the contentlink when we pass in the documentId of that content link

How to limit the libraries searched by WCM API search functions




The contentSearch method is designed to mimic the functionality of the menu component and it is thus working as designed.
To search only on desired library, you can utilise workspace.findByType(DocumentTypes.SiteArea); to retrieve all the siteareas in the current library and pass these as a parameter to the current contentSearch method.

Note 1: Most methods in the API workspace object ignore the "current document library" setting - basically the only ones that actually use it are the "findByXXXX" methods.The library set in method setCurrentDocumentLibrary() is the Library that will be used for all find operations, until it is set to a different Library.

Note 2: contentSearch method will search even on disabled library.


How to invoke the WCM API Remotely



Options for remote invocation of WCM API:

1.The standard method of invoking the WCM API remotely is to configure the Remote Web Content Viewer portlet for JSP Components or related content on the remote WCM Server. The API's are invoked on the remote WCM server via the JSP's.

2.Another more limited option is to use the Remote Action URLs. Please see this section of the Infocenter for a description and samples of this option:
http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1m0/index.jsp?topic=/com.ibm.wp.ent.doc/wcm/wcm_dev_remoteactions.html

3.Implement remote WCM calls using AJAX. See:

http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.ajax.devguide.help/docs/AJAX_Traditional_addcontrols.html

http://www.ibm.com/developerworks/websphere/library/techarticles/0606_bishop/0606_bishop.html

4.Custom Servlet
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/org.eclipse.wst.webtools.doc.user/topics/cwservbn.html


5.Web Services
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/welc6tech_wbs.html


6.EJB Client/Server
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.etools.ejb.doc/topics/cearch.html


7.WSRP Services
http://publib.boulder.ibm.com/infocenter/wpdoc/v6r1m0/index.jsp?topic=/com.ibm.wp.ent.doc_v6101/admin/wsrpc_plan.html

If implementing servlet caching, see servlet spec sections SRV8.3 and SRV8.4. An included servlet must explicitly flush
the response to commit a request, this must be done for for a forwarded servlet (flushBuffer() method).


Web sites with sample implementation of WCM API




http://www-10.lotus.com/ldd/portalwiki.nsf/dx/wcm-api-example-allowing-anonymous-users-to-update-comment-field-of-wcm-content

http://www-10.lotus.com/ldd/portalwiki.nsf/dx/wcm-how-to-allow-portal-search-crawler-to-access-wcm-library-file-resource-components

http://www-10.lotus.com/ldd/portalwiki.nsf/dx/Allowing_End_Users_to_Subscribe_to_WCM_Content_To_Be_Alerted_of_Content_Changes

http://www-10.lotus.com/ldd/portalwiki.nsf/dx/wcm-api-example-generating-websphere-portal-navigation-from-wcm

http://www-10.lotus.com/ldd/portalwiki.nsf/dx/Leveraging_JSON_Javascript_to_extend_WCM_Component_Design_

http://www-10.lotus.com/ldd/portalwiki.nsf/dx/wcm-api-example-creating-an-administrative-navigator-component

http://www-10.lotus.com/ldd/portalwiki.nsf/dx/4.3.2-wcm-api-sample-wcm-reports

http://www-01.ibm.com/support/docview.wss?uid=swg21314741 How to use the WCM API to render a Personalization (PZN) component

http://www-01.ibm.com/support/docview.wss?uid=swg21386533 Retrieving the rendering context within a WCM JSP Component


Published technotes related to the WCM API



http://www-01.ibm.com/support/docview.wss?uid=swg21314849 How to update workflow and add approver comments using the Web Content Management (WCM) API

http://www-01.ibm.com/support/docview.wss?uid=swg21410553 Applications using the WCM API may fail to load with NoClassDefFoundError

http://www-01.ibm.com/support/docview.wss?uid=swg21315987 How to use the WCM API to retrieve content element information such as image component file size

https://www.ibm.com/developerworks/forums/thread.jspa?messageID=14238009 Open Mic call discussing WCM API best practices

http://www-01.ibm.com/support/docview.wss?rs=1041&uid=swg21291258 IBM Web Content Management (WCM) Open Mic call on API Best Practices - January 2008

http://www-01.ibm.com/support/docview.wss?uid=swg21298398 Tech Exchange webcast on API best practices - February 28, 2008

http://www-01.ibm.com/support/docview.wss?uid=swg21372015 How to capture errors when saving a document using WCM API

http://www-01.ibm.com/support/docview.wss?uid=swg21287601 Using the IBM WebSphere Portal PUMA SPI to retrieve WCM Categories returns a list of alphanumeric character strings rather than category names

http://www-01.ibm.com/support/docview.wss?uid=swg21317807 How to create content as Anonymous User with WCM 6.1.x

http://www-01.ibm.com/support/docview.wss?uid=swg21315265 How to copy content between content libraries using the Web Content Management (WCM) API

http://www-01.ibm.com/support/docview.wss?uid=swg21232487 Getting the generated Java source for a JSP file

http://www-10.lotus.com/ldd/portalwiki.nsf/dx/3.4.2.-workflow#customworkflow Step by step instructions for creating a custom workflow action

http://www.ibm.com/developerworks/lotus/library/lwwcm-api/ Older 5.1 API documentation with some good examples

About the author


John Rickett is currently a WCM API SME for the Web Content Management L2 Team.

expanded Article information
collapsed Article information
Category:
FAQs about Web Content Manager, Samples and Examples for Web Content Manager, Troubleshooting Web Content Manager,
Tags:
WCM API Troubleshooting HowTo Sample Code

This Version: Version 25 March 30, 2011 4:41:35 PM by Sunil Bhatnagar  IBMer

expanded Attachments (0)
collapsed Attachments (0)

 


expanded Versions (25)
collapsed Versions (25)
Version Comparison     
Version Date Changed by               Summary of changes
This version (25) Mar 30, 2011 4:41:35 PM Sunil Bhatnagar  
24 Jan 27, 2011 5:13:06 PM John Rickett  
23 Sep 28, 2010 12:17:16 AM John Rickett  
22 Sep 26, 2010 9:22:03 PM John Rickett  
21 Sep 24, 2010 3:57:42 PM John Rickett  
20 Sep 24, 2010 3:00:25 PM John Rickett  
19 Sep 22, 2010 9:43:41 AM John Rickett  
18 Sep 22, 2010 9:42:03 AM John Rickett  
17 Sep 21, 2010 11:09:48 AM John Rickett  
16 Sep 20, 2010 11:42:44 AM John Rickett  
15 Sep 20, 2010 11:38:42 AM John Rickett  
14 Sep 20, 2010 11:28:12 AM John Rickett  
13 Sep 20, 2010 11:22:18 AM John Rickett  
12 Sep 20, 2010 11:20:25 AM John Rickett  
11 Sep 15, 2010 12:23:35 PM John Rickett  
10 Sep 7, 2010 12:10:23 PM Sunil Bhatnagar  
9 Aug 30, 2010 9:26:38 PM John Rickett  
8 Aug 27, 2010 12:13:23 AM John Rickett  
7 Aug 26, 2010 11:26:06 PM John Rickett  
6 Aug 26, 2010 1:23:55 PM John Rickett  
5 Aug 25, 2010 3:30:52 PM John Rickett  
4 Aug 25, 2010 3:24:18 PM John Rickett  
3 Aug 25, 2010 3:20:07 PM John Rickett  
2 Aug 25, 2010 3:17:58 PM John Rickett  
1 Aug 25, 2010 3:15:39 PM John Rickett  
expanded Comments (0)
collapsed Comments (0)
Copy and paste this wiki markup to link to this article from another article in this wiki.
Go ElsewhereStay ConnectedSubscribe to RSSHelpAbout
  • All Lotus and WebSphere Portal wikis
  • IBM developerWorks
  • IBM Software support
  • IBM Social Business User Experience Blog
  • IBMSocialBizUX on Twitter
  • IBMSocialBizUX on Facebook
  • Lotus product forums
  • IBM Social Business UX blog
  • IBM Collaboration Solutions
  • Recently added feedRecently added
  • Recently edited feedRecently edited
  • Recently added comments feedRecently Added Comments
  • Wiki Help
  • Forgot user name/password
  • Wiki design feedback
  • Content feedback
  • About the wiki
  • About IBM
  • Privacy
  • Contact IBM
  • IBM Terms of use
  • Wiki terms of use