Bug 793871 (JBEPP-944)

Summary: "org.gatein.pc.api.NoSuchPortletException" occurs when adding an .NET wsrp portlet to a page.
Product: [JBoss] JBoss Enterprise Portal Platform 5 Reporter: Gary Hu <garyhu2>
Component: PortalAssignee: claprun <claprun>
Status: CLOSED NEXTRELEASE QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 5.1.0.GACC: chris.laprun, epp-bugs, garyhu2, mweiler, theute, wsiqueir
Target Milestone: ---   
Target Release: 5.2.0.GA   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/JBEPP-944
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-01-12 15:31:57 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Gary Hu 2011-05-10 16:17:24 UTC
Help Desk Ticket Reference: https://na7.salesforce.com/500A0000007AnIu
project_key: JBEPP

I got the following errors when adding an .NET wsrp portlet to a page on EPP 5.1.
  Caused by: org.gatein.pc.api.NoSuchPortletException: No such portlet /netunity.0A14BC29-63CE-4081-93FC-484DB45FF9FF
	at org.gatein.pc.portlet.container.ContainerPortletInvoker.getPortlet(ContainerPortletInvoker.java:99)
	at org.gatein.pc.portlet.PortletInvokerInterceptor.getPortlet(PortletInvokerInterceptor.java:84)
	at org.gatein.pc.portlet.state.producer.ProducerPortletInvoker.invoke(ProducerPortletInvoker.java:211)
	at org.gatein.pc.federation.impl.FederatedPortletInvokerService.invoke(FederatedPortletInvokerService.java:151)
	at org.gatein.pc.federation.impl.FederatingPortletInvokerService.invoke(FederatingPortletInvokerService.java:211)
	at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:89)
	at org.gatein.pc.portlet.aspects.PortletCustomizationInterceptor.invoke(PortletCustomizationInterceptor.java:76)
	at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:89)
	at org.gatein.pc.portlet.aspects.ConsumerCacheInterceptor.invoke(ConsumerCacheInterceptor.java:162)
	at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:89)
	at org.exoplatform.portal.webui.application.UIPortlet.invoke(UIPortlet.java:1039)
	at org.exoplatform.portal.webui.application.UIPortletLifecycle.processRender(UIPortletLifecycle.java:203)

The following steps could reproduce the issue.

1) login as root.
2) go to page group->WSRP to create a consumer, for example, netunity, using the producer wsdl url: http://www.netunitysoftware.com/wsrp2interop/wsrpproducer.asmx?WSDL
3) the consumer should be able to be created successfully and the remote portlets should be able to show up correctly under the "REMOTE" tab of "Portlet" on the Application Registry page. then add the remote portlet to a category, for example "Web".
4) create a new page by adding the wsrp portlet from the category, for example "web". you can see the error mentioned above in the log.

Comment 1 Martin Weiler 2011-05-11 08:08:09 UTC
It seems to make a difference how the remote portlet is added to the categories:

Approach 1:
----------
1.a Group -> Administration -> Application Registry
1.b Click on 'Portlet'
1.c Click on 'REMOTE'
1.d Select remote portlet and click on 'Click here to add into categories', add the portlet to Web category
1.e Create a new page and add the portlet -> ERROR: org.gatein.pc.api.NoSuchPortletException: No such portlet /netunity.E3C97F09-2C61-473a-B303-663B0D20E1B7

Approach 2:
----------
2.a Group -> Administration -> Application Registry
2.b In the 'CATEGORIES' box, select the Web category
2.c Click the + symbol to add portlets to this category
2.d Change select box 'Application Type' to 'wsrp'
2.e Select a portlet and click 'Add'
2.f Create a new page and add the portlet -> WORKS



Comment 2 Martin Weiler 2011-05-11 08:18:10 UTC
While it does not explain the difference in the generated portletID depending on how the portlet is added to the categories, there is a related JIRA regarding the inability to add portlets where the id has a preceding slash to a page: https://issues.jboss.org/browse/JBEPP-854

Comment 3 Gary Hu 2011-05-11 21:55:44 UTC
Here is another approach

3.a Group -> Administration -> Application Registry
3.b click "Import Applications".There will be categories "remote" as well as the producer services created by EPP. For example, I'm using NetUnit public producer, so "NetUnit" and "NetUnit Producer" categories are generated. 
3.c Create a new page and add the portlet from the categories "remote", or "NetUnit" or "NetUnit Producer" -> WORKS



Comment 5 Jared MORGAN 2011-11-16 22:52:34 UTC
Release Notes Docs Status: Added: Not Yet Documented


Comment 6 hfnukal@redhat.com 2012-01-12 14:32:51 UTC
Labels: Added: EPP_5_2_1_Candidate


Comment 7 Chris Laprun 2012-01-12 15:10:22 UTC
I believe that this has been fixed. I need to double check though.

Comment 8 Chris Laprun 2012-01-12 15:31:57 UTC
Labels: Removed: EPP_5_2_1_Candidate 
Release Notes Text: Added: Remote portlets were previously inconsistently handled at the Application Registry level. This situation resulted in an error being thrown when a remote portlet was added to a page after it had manually been added to a category from the Portlet tab of the Application Registry. This issue has been addressed and it should be now possible to add remote portlets to pages without problem, regardless of how they were made available to categories.