Wednesday, September 19, 2012

Webcenter Spaces: oracle.mds.core.MetadataNotFoundException: MDS-00013: no metadata found for metadata object

This strange error appears sometomes after redeploying WSRP portlet and when this portlet is consumend by Webcenter Spaces or Webcenter Portal.

[2012-09-19T13:48:50.799+02:00] [WC_Spaces] [ERROR] [] [oracle.portlet.binding] [tid: [ACTIVE].ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: weblogic] [ecid: e9b6dbbc873f2b62:16e90ad0:139dd9e5e52:-8000-0000000000002906,0] [APP: webcenter#11.1.1.4.0]  An error has occured for binding portlet portlet7035644851.[[

oracle.adf.model.portlet.binding.PortletBindingException: The metadata for portlet binding portlet7035644851 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)

    at oracle.adf.model.portlet.binding.PortletBinding._refresh(PortletBinding.java:330)

    at oracle.adf.model.portlet.binding.PortletBinding.refresh(PortletBinding.java:922)

    at oracle.adf.model.binding.DCBindingContainer.internalRefreshControl(DCBindingContainer.java:3271)

    at oracle.adf.model.binding.DCBindingContainer.refresh(DCBindingContainer.java:2874)

    at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.prepareRender(PageLifecycleImpl.java:561)

    at oracle.adf.controller.faces.lifecycle.FacesPageLifecycle.prepareRender(FacesPageLifecycle.java:81)

    at oracle.adf.controller.v2.lifecycle.Lifecycle$9.execute(Lifecycle.java:224)

    at oracle.adfinternal.controller.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:197)

   

...

 Caused by: oracle.portlet.client.persistence.PersistenceNotFoundException: mdsId=/oracle/adf/portlet/scopedMD/s1fbe8801_cf19_4970_a002_0582c5baf1e6/portlets/MyPortlet_b7c97a45_87d8_4860_844b_b05af20d88e0.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)

    at oracle.portlet.client.containerimpl.PublicFactoryImpl.get(PublicFactoryImpl.java:300)

    at oracle.portlet.client.containerimpl.PublicFactoryImpl.get(PublicFactoryImpl.java:310)

    at oracle.portlet.client.containerimpl.PortletContainerImpl.getById(PortletContainerImpl.java:345)

    at oracle.portlet.client.containerimpl.PortletContainerImpl.getPortlet(PortletContainerImpl.java:267)

    at oracle.adfinternal.model.portlet.binding.PortletModelImpl.init(PortletModelImpl.java:380)

    at oracle.adf.model.portlet.binding.PortletBinding$InnerPortletModel.init(PortletBinding.java:1101)

    at oracle.adfinternal.model.portlet.binding.ActivityPortletModelWrapper.init(ActivityPortletModelWrapper.java:112)

    at oracle.adf.model.portlet.binding.PortletBinding._initModel(PortletBinding.java:471)

    ... 87 more

Caused by: oracle.mds.core.MetadataNotFoundException: MDS-00013:  no metadata found for metadata object "/oracle/adf/portlet/scopedMD/s1fbe8801_cf19_4970_a002_0582c5baf1e6/portlets/MyPortlet_b7c97a45_87d8_4860_844b_b05af20d88e0.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)

I'm not sure what is real cause of this error. But I suppose this is configuration persistence problem, probably Webcenter Spaces holds the older configuration information which should be refreshed after deployment.

The problem can lay in page bindings: in Webcenter Spaces you don't have control over the bindings stored in page definition. There is also possible the error lays in wrong portlet producer configuration.

Till now I found one sure method to refresh Spaces configuration:
  • Delete the portlet from the page (in Spaces via composer). 
  • Unregister the producer from Spaces (via EM). 
  • Register the producer from scratch. 
  • Add the portlet to the page.

1 comment: