Replacing WSRP Portlet Registration At Runtime Results In "Portlet Consumer Error" (Doc ID 1531132.1)

Last updated on JUNE 13, 2017

Applies to:

Oracle WebCenter Portal - Version 11.1.1.5.0 and later
Information in this document applies to any platform.

Symptoms

WSRP portlets are used in WebCenter Portal application. These portlets are contained in a WSRP producer.
When the connection information to the associated WSRP Producer is deleted and recreated with exactly the same connection details, the portlets are no longer displayed.


This error is seen in place of the portlet:

Portlet Consumer Error.

And this error stack is seen in the log file where the application is deployed:

An error has occured for Portlet Binding portlet1.
oracle.adf.model.portlet.binding.PortletBindingException: The metadata for portlet binding ParameterFormPortlet1_1 was not found in MDS.
at oracle.adf.model.portlet.binding.PortletBinding._initModel(PortletBinding.java:484)
at oracle.adf.model.portlet.binding.PortletBinding.initModel(PortletBinding.java:913)
at oracle.adf.model.portlet.binding.PortletBinding.getPortletModel(PortletBinding.java:541)
at oracle.adf.model.portlet.binding.PortletBinding.prepareRenderPhase(PortletBinding.java:394)
...
Caused by: oracle.portlet.client.persistence.PersistenceNotFoundException: mdsId=/oracle/adf/portlet/WsrpPortletProducer0/ap/Ei1default_6197732f_013c_1000_8002_0aaf0302f8e7.pxml not found
at oracle.portlet.client.persistenceimpl.mds.MDSPersistenceContext.getInternal(MDSPersistenceContext.java:649)
at oracle.portlet.client.persistenceimpl.mds.MDSPersistenceContext.get(MDSPersistenceContext.java:604)
at oracle.portlet.client.beanimpl.persistence.PersistenceBeanFactory.getExisting(PersistenceBeanFactory.java:249)
at oracle.portlet.client.beanimpl.persistence.PersistenceBeanContext.getExisting(PersistenceBeanContext.java:110)
...
Caused by: oracle.mds.core.MetadataNotFoundException: MDS-00013: no metadata found for metadata object "/oracle/adf/portlet/WsrpPortletProducer0/ap/Ei1default_6197732f_013c_1000_8002_0aaf0302f8e7.pxml"
at oracle.mds.core.MetadataObject.getBaseMO(MetadataObject.java:1279)
at oracle.mds.core.MDSSession.getBaseMO(MDSSession.java:3040)
at oracle.mds.core.MDSSession.getMetadataObject(MDSSession.java:1341)
at oracle.portlet.client.persistenceimpl.mds.MDSSessionWrapper.getBaseReadOnlyMO(MDSSessionWrapper.java:256)
at oracle.portlet.client.persistenceimpl.mds.MDSPersistenceContext.getInternal(MDSPersistenceContext.java:634)
... 77 more

 

These steps describe how to reproduce this issue using Jdeveloper and the Integrated Web Logic Server, but the same problem occurs when the application is deployed to a remote custom server:

1. In JDeveloper, create a new simple WebCenter Portal application.
2. Under Application Resources -> Connections , create a new WSRP connection with connection to a producer in 11.1.1.5.4 (or any other version) instance containing the portlets.
    For example, create a WSRP connection to point to the wsrp-tools portlets available by default in the WC-Portlet managed server (http://:8889/wsrp-tools/portlets/wsrp2?WSDL).
3. This shows the WSRP portlets.
4.  Edit home.jspx and drag and drop a portlet from the WSRP producer (e.g. Parameter Form portlet).
5.  Start the Integrated WLS.
6.  Run home.jspx.
7.  Login as weblogic/weblogic1.
8.  The application runs fine and the WSRP portlet is displayed.
9.  Delete the WSRP producer connection.
10.  Under Application Resources -> New Connection -> WSRP Producer, add a producer with the same details as before.
11.  Test producer connection -> success
12.  Save all.
13.  Run home.jspx again.
14.  The portlet does not display, but shows this error: "Portlet Consumer Error."

Changes

De-registering and re-registering a producer.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms