Problem with portlets with XSLT generating dynamic portal compatible links

Hi,
We're using XSLT to transform XML data to HTML in a portlet. The problem is that
the XML contains headlines and we need to create links to the complete article,
which has to be displayed in the same portlet. How do I create a portal comaptible
link with XSLT? In the JSP you can use the netui tag library like:
<netui:anchor action="..">
link
<netui:parameter name="id" value="{id}"/>
</netui:anchor>
but how can I achieve this with XSLT? We tried generating the xsl with a jsp,
but this doesn't work since the data entered in the value attribute of the netui:parameter
tag will be encoded causing the XSL transformer to fail.
Is there an easy solution to this? Or can XSLT only be used with very simple content?
Ard

We're trying to display some news headlines, clicking a headline has to invoke
an action to display the complete article in the same portlet (using pageflow).
When displaying the articles we use XSLT like (this is a JSP generating XSLT):
<?xml version="1.0"?>
<%@ page contentType="text/x-xslt"%>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match="items">
<xsl:apply-templates select="item"/>
</xsl:template>
<xsl:template match="item">
<nobr>
<%-- ###### Here we need an action link, with the title as a request parameter
###### --%>
<xsl:value-of select="@title"/>
</nobr>
</xsl:template>
</xsl:stylesheet>
The XML is like:
<items>
<item title="some title"/>
<item title="some other title"/>
</items>
We need to generate a portal compatible link which invokes an action (show_details)
with the title of the article as a request parameter.
I know how to do this in a JSP, but since the data is in XML we like to do this
with XSLT.
Can you help?
Subbu Allamaraju <subbuATBeaDOTCom> wrote:
Could you elaborate (perhaps with some xsl snippet generated by jsp)
the
failures you were getting with xslt?
Subbu
Ard van der Scheer wrote:
Hi,
We're using XSLT to transform XML data to HTML in a portlet. The problemis that
the XML contains headlines and we need to create links to the completearticle,
which has to be displayed in the same portlet. How do I create a portalcomaptible
link with XSLT? In the JSP you can use the netui tag library like:
<netui:anchor action="..">
link
<netui:parameter name="id" value="{id}"/>
</netui:anchor>
but how can I achieve this with XSLT? We tried generating the xsl witha jsp,
but this doesn't work since the data entered in the value attributeof the netui:parameter
tag will be encoded causing the XSL transformer to fail.
Is there an easy solution to this? Or can XSLT only be used with verysimple content?
Ard

Similar Messages

  • Problem in SSO  with a Designer Generated Portlet

    Trying to evaluate Designer 6i Release4's portlet genration functionality for Oracle Portal.
    Problem with the SSO features.
    Completed all of the preconfiguration tasks:
    - Installed PL/SQL SSO enabler packages for the SSOSDK from
    the June Portal Developers Kit.
    - Installed the WSGSSO Packages and a created some users with
    the default 'administrator' role.
    - Registered the application with the Portal Login Server.
    - Developed a PL/SQL form in Desginer and generated with
    MODPTL pref as 'Yes' and MODFOU with the correct DAD.
    As described here, all is well. Refreshing the Portlet
    Provider list will display the generated form as a new
    portlet. However, the problem occurs when turning on the SSO
    functionality - Set SECVAL to 'Yes' and SECPKG to 'WSGSSO'.
    Regenerate, refresh the Portlet provider list and the form
    is no longer available as a portlet!
    Has anyone else tried this and had the same problem?
    Any ideas?

    have you ensure that when using logon tickets, the user logging in has relevant backend access...
    perhaps in user mapping, the particular userid might have necessary backend access..and hence its working fine ..
    just check if the loggin in user has necessary authorization during logon ticket method..
    Regards,
    Abhijeet

  • Bug or feature : Using portlets with edit mode on a page in the portal

    Hi,
    i am using Workshop 8.1 (GA release july) and i have discovered a bug (or a
    feature) with respect to the beta version.
    i have created a simple portlet with a view mode and an edit mode. When i
    place the portlet on the very first page of a one book portal, it works
    perfectly. However, i have a book with three pages and placed the portlet on
    the second page. Now when i put the portlet in edit mode, by clicking the
    edit button, i am directed to the first page of the portal and the portlet
    will not show.
    Inspection learned that the URL generated for the edit button, didn't
    contain the _pagelabel parameter. When i added the parameter manually it
    works fine.
    A final remark is that the buttons in the titlebar have no icons the browser
    can load.
    hope someone can help me out,
    Lodewijk

    Can you please post this question to weblogic.developer.interest.portal
    newsgroup.
    Thanks
    "Lodewijk Spijker" <[email protected]> wrote in message
    news:3f165945$[email protected]..
    Hi,
    i am using Workshop 8.1 (GA release july) and i have discovered a bug (ora
    feature) with respect to the beta version.
    i have created a simple portlet with a view mode and an edit mode. When i
    place the portlet on the very first page of a one book portal, it works
    perfectly. However, i have a book with three pages and placed the portleton
    the second page. Now when i put the portlet in edit mode, by clicking the
    edit button, i am directed to the first page of the portal and the portlet
    will not show.
    Inspection learned that the URL generated for the edit button, didn't
    contain the _pagelabel parameter. When i added the parameter manually it
    works fine.
    A final remark is that the buttons in the titlebar have no icons thebrowser
    can load.
    hope someone can help me out,
    Lodewijk

  • Problems with the article Building JSR 168-Compliant Portlets with Sun Java

    i try to make my first portlet with the article Building JSR 168-Compliant Portlets with Sun Java Studio Enterprise
    But when start the portlet simulator in the sun java studio i have an error. I did all that the article says. Please help me!!
    Thanks and sorry for my english
    Errors generated by provider instance - see log output
    Error in provider method getContent(): com.sun.portal.providers.ProviderException: JSPProvider.processJSPFile(): jsp=HarnessPortletContent.jsp, java.lang.NullPointerException
    Message: Locale string - es_ES
    Message: Obtained client type - html.
    Message: Got session property "filePath" = "null".
    Message: Locale string - es_ES
    Message: Got String property "contentPage" for channel "HarnessPortletChannel" = "HarnessPortletContent.jsp".
    Message: Locale string - es_ES
    Message: Obtained client type - html.
    Message: Client path - null
    Message: Obtained template path: C:\Documents and Settings\jbonardi\jstudio_6ee_user\ps\desktop\default\HarnessPortletChannel\HarnessPortletContent.jsp
    Message: Set session property "javax.portlet.http_session_id" to object "BC7F955E23394EF2EA8772E8B60F1CC4".
    Message: Got localized String property "title" for channel "HarnessPortletChannel" = "HarnessPortletProvider".
    Message: Boolean property "isEditable" for channel "HarnessPortletChannel" does not exist.
    Message: Got localized String property "description" for channel "HarnessPortletChannel" = "HarnessPortletProvider".
    Message: String property "helpURL" for channel "HarnessPortletChannel" exists.
    Message: Got String property "helpURL" for channel "HarnessPortletChannel" = "desktop/usedesk.htm".
    Message: Locale string - es_ES
    Message: Got String property "docroot" for channel "HarnessPortletChannel" = "/portalserver/docs/".
    Message: Got String property "contentPage" for channel "HarnessPortletChannel" = "HarnessPortletContent.jsp".
    Message: Boolean property "showExceptions" for channel "HarnessPortletChannel" does not exist.
    Message: Locale string - es_ES
    Message: Obtained client type - html.
    Message: Client path - null
    Message: Obtained template path: C:\Documents and Settings\jbonardi\jstudio_6ee_user\ps\desktop\default\HarnessPortletChannel\HarnessPortletContent.jsp
    Message: Locale string - es_ES
    Message: Obtained client type - html.
    Message: Client path - null
    Message: Obtained template most specific path: C:\Documents and Settings\jbonardi\jstudio_6ee_user\ps\desktop\default\HarnessPortletChannel\HarnessPortletContent.jsp
    Message: Obtained client type - html.
    Message: Got collection property "hasHelpByMimeType" for channel "portlet_GoogleSearchPortlet.
    Message: Got localized String property "title" for channel "portlet_GoogleSearchPortlet" = "__Portlet__portlet.GoogleSearchPortlet".
    Message: Boolean property "isEditable" for channel "portlet_GoogleSearchPortlet" exists.
    Message: Got String property "entityIDPrefix" for channel "portlet_GoogleSearchPortlet" = "portlet|GoogleSearchPortlet".
    Message: Got session property "javax.portlet.portletc.renderParams.portlet|GoogleSearchPortlet|portlet_GoogleSearchPortlet" = "null".
    Message: Got session property "javax.portlet.portletc.portlet|GoogleSearchPortlet|portlet_GoogleSearchPortlet.isTarget" = "null".
    Message: Set session property "javax.portlet.portletc.portlet|GoogleSearchPortlet|portlet_GoogleSearchPortlet.isTarget" to object "false".
    Message: Obtained client type - html.
    Message: Collection property "roleMap" for channel "portlet_GoogleSearchPortlet" does not exist.
    Message: Collection property "userInfoMap" for channel "portlet_GoogleSearchPortlet" does not exist.
    Message: Boolean property "showExceptions" for channel "HarnessPortletChannel" does not exist.
    Error: Error in provider getContent()
    <<<<<<<< Stack Backtrace:
    com.sun.portal.providers.ProviderException: JSPProvider.processJSPFile(): jsp=HarnessPortletContent.jsp, java.lang.NullPointerException
         at com.sun.portal.providers.jsp.JSPProvider.processJspFile(JSPProvider.java:880)
         at com.sun.portal.providers.jsp.JSPProvider.processJspFile(JSPProvider.java:777)
         at com.sun.portal.providers.jsp.JSPProvider.getContent(JSPProvider.java:546)
         at com.sun.portal.harness.HarnessPortletProvider.getContent(Unknown Source)
         at com.sun.portal.harness.ProviderHarness.createContent(Unknown Source)
         at com.sun.portal.harness.ProviderHarness.initProvider(Unknown Source)
         at com.sun.portal.harness.ProviderHarness.getHarness(Unknown Source)
         at org.apache.jsp.desktop_0005cdefault_0005charness_0005cPSSimTarget$jsp._jspService(desktop_0005cdefault_0005charness_0005cPSSimTarget$jsp.java:73)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.netbeans.modules.tomcat.tomcat40.runtime.IDEJspServlet$JspServletWrapper.service(IDEJspServlet.java:173)
         at org.netbeans.modules.tomcat.tomcat40.runtime.IDEJspServlet.serviceJspFile(IDEJspServlet.java:246)
         at org.netbeans.modules.tomcat.tomcat40.runtime.IDEJspServlet.service(IDEJspServlet.java:339)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:683)
         at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
         at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:497)
         at org.apache.jsp.PSSim$jsp._jspService(PSSim$jsp.java:84)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.netbeans.modules.tomcat.tomcat40.runtime.IDEJspServlet$JspServletWrapper.service(IDEJspServlet.java:173)
         at org.netbeans.modules.tomcat.tomcat40.runtime.IDEJspServlet.serviceJspFile(IDEJspServlet.java:246)
         at org.netbeans.modules.tomcat.tomcat40.runtime.IDEJspServlet.service(IDEJspServlet.java:339)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
         at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:226)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
         at org.netbeans.modules.web.monitor.catalina.MonitorValve.invoke(MonitorValve.java:148)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2349)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
         at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
         at java.lang.Thread.run(Thread.java:534)
    java.lang.NullPointerException
         at com.sun.portal.harness.HarnessPortletProvider.doGetContent(Unknown Source)
         at _jspsC_0003a._Documents_00020and_00020Settings._jbonardi._jstudio_6ee_user._ps._desktop._default._HarnessPortletChannel._HarnessPortletContent_jsp._jspService(_HarnessPortletContent_jsp.java:215)
         at com.sun.portal.providers.jsp.jasper3.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sun.portal.providers.jsp.JspServletWrapper.service(JspServletWrapper.java:182)
         at com.sun.portal.providers.jsp.JSPProvider.processJspFile(JSPProvider.java:863)
         at com.sun.portal.providers.jsp.JSPProvider.processJspFile(JSPProvider.java:777)
         at com.sun.portal.providers.jsp.JSPProvider.getContent(JSPProvider.java:546)
         at com.sun.portal.harness.HarnessPortletProvider.getContent(Unknown Source)
         at com.sun.portal.harness.ProviderHarness.createContent(Unknown Source)
         at com.sun.portal.harness.ProviderHarness.initProvider(Unknown Source)
         at com.sun.portal.harness.ProviderHarness.getHarness(Unknown Source)
         at org.apache.jsp.desktop_0005cdefault_0005charness_0005cPSSimTarget$jsp._jspService(desktop_0005cdefault_0005charness_0005cPSSimTarget$jsp.java:73)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.netbeans.modules.tomcat.tomcat40.runtime.IDEJspServlet$JspServletWrapper.service(IDEJspServlet.java:173)
         at org.netbeans.modules.tomcat.tomcat40.runtime.IDEJspServlet.serviceJspFile(IDEJspServlet.java:246)
         at org.netbeans.modules.tomcat.tomcat40.runtime.IDEJspServlet.service(IDEJspServlet.java:339)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:683)
         at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
         at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:497)
         at org.apache.jsp.PSSim$jsp._jspService(PSSim$jsp.java:84)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.netbeans.modules.tomcat.tomcat40.runtime.IDEJspServlet$JspServletWrapper.service(IDEJspServlet.java:173)
         at org.netbeans.modules.tomcat.tomcat40.runtime.IDEJspServlet.serviceJspFile(IDEJspServlet.java:246)
         at org.netbeans.modules.tomcat.tomcat40.runtime.IDEJspServlet.service(IDEJspServlet.java:339)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
         at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:226)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
         at org.netbeans.modules.web.monitor.catalina.MonitorValve.invoke(MonitorValve.java:148)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2349)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
         at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
         at java.lang.Thread.run(Thread.java:534)
    >>>>>>>>
    Message: Got String property "width" for channel "HarnessPortletChannel" = "thick".

    You�ve got to unmount the portal server fs from your project, disable the portlet builder plugin (Tools->options->,,,PortletBuilder) then erase the ps folder inside your ide profile and then start the portlet builder module again. Try to simulate it again and it should work.
    Regards,
    Pablo.

  • Announcing: Developing JSF Portlets with WebLogic Portal Whitepaper

    Just Released: Developing JSF Portlets with WebLogic Portal Whitepaper
    A supplemental developer's guide has been published to help guide WLP 10.x customers that wish to use JSF as the web framework for building portlets on WebLogic Portal. This is a sizable document (150 pages) that covers a large number of topics. It also coaches developers on best practices and common pitfalls.
    Important: It also clarifies the supported configuration of JSF within Portal Web Projects. Workshop for WebLogic by default configures a web project in a configuration that is not supported by WebLogic Portal. The guide explains how to address this:
    * Change from the unsupported MyFaces JSF implementation to the supported Sun Reference Implementation (RI)
    * Change from the unsupported "client" STATE_SAVING_METHOD to the supported "server"
    The guide can be downloaded here:
    http://download.oracle.com/technology/products/weblogic/portal/weblogic-portal-jsf-whitepaper.pdf
    To help internet searches locate this document, the table of contents is reproduced below:
    Introduction
    1.1. Prerequisites...................................................................... 8
    1.2. Applicable Versions............................................................ 8
    1.3. Native Portlet Bridges and Standard Portlet Bridges .......... 8
    1.4. JSF Portlet Support Roadmap ........................................... 9
    1.5. Whitepaper Structure ....................................................... 10
    1.6. Look Before You Leap ..................................................... 10
    1.7. For More Information........................................................ 10
    Part 1: Converting JSF Applications into Portlets
    2. IDE Support for JSF Portlets Chapter ...................................... 12
    2.1. Workshop for WebLogic – WebLogic Portal's Supported IDE 12
    2.2. Workshop Features for JSF Support in WebLogic Portal.. 12
    3. Introduction to JSF Portlets Chapter ........................................ 18
    3.1. Creating Your First JSF Portlet......................................... 18
    3.2. Essentials of JSF Portlet Views........................................ 21
    3.3. WebLogic Portal Artifacts................................................. 22
    4. Configuring JSF within WebLogic Portal Chapter..................... 24
    4.1. JSF Library Modules in WebLogic Server ........................ 24
    4.2. Installing the JSF Libraries into a Portal Web Project ....... 25
    4.3. JSF Configuration Settings............................................... 27
    4.4. Configuring JSF 1.2 ......................................................... 29
    4.5. Building an Unsupported JSF Implementation Library Module 31
    4.6. Faces Configuration is Web Application Scoped.............. 31
    5. Navigation within a JSF Portlet Chapter................................... 33
    5.1. Navigating within a Portlet with the JSF Controller ........... 33
    5.2. Redirects.......................................................................... 34
    6. Namespacing Chapter ............................................................. 35
    6.1. Namespacing Managed Bean Names.............................. 35
    6.2. Client ID Namespacing with the View and Subview Components 35
    6.3. Client ID Namespacing with the WLP NamingContainer .. 36
    7. Logging, Iterative Development, and Debugging Chapter ........ 39
    7.1. Logging............................................................................ 39
    7.2. Iterative Development ...................................................... 39
    7.3. Debugging ....................................................................... 40
    8. Custom JavaScript Chapter ..................................................... 42
    8.1. DOM Manipulation within a JSF ....................................... 42
    8.2. Form Validation within a JSF Portlet ................................ 45
    9. Preparing JSF Portlets for Production Chapter ........................ 46
    9.1. Configuration.................................................................... 46
    9.2. Performance and Scalability............................................. 47
    9.3. Security............................................................................ 49
    9.4. Localization...................................................................... 50
    Part 2: Interacting with the Portal Environment
    10. Native Bridge Architecture Chapter ...................................... 54
    10.1. Container Architecture Overview.................................. 54
    10.2. Container Architecture.................................................. 54
    10.3. Container Interactions .................................................. 55
    11. Interportlet Communication Chapter .................................... 56
    11.1. Using Session and Request Attributes for IPC (Anti-pattern) 56
    11.2. Using the WLP Event Facility for IPC with JSF Portlets 56
    11.3. Notifications ................................................................. 60
    11.4. Comparison of the IPC Approaches ............................. 60
    12. Scopes Chapter ................................................................... 62
    12.1. Conceptual Scopes for Standard JSF Applications ...... 62
    12.2. Conceptual Scopes for Portal Applications................... 63
    12.3. Implementation Patterns for Portal Scopes .................. 63
    13. State Sharing Patterns Chapter ........................................... 66
    13.1. State Sharing Concepts ............................................... 66
    13.2. HttpSession Versus HttpServletRequest ...................... 66
    13.3. Base Code for HttpSession Patterns ............................ 67
    13.4. Single Portlet Pattern ................................................... 68
    13.5. Multiple Portlet Patterns ............................................... 69
    14. Rendering Lifecycles Chapter .............................................. 77
    14.1. WLP and JSF Lifecycles .............................................. 77
    14.2. Invocation Order of WLP and JSF Lifecycle Methods... 77
    14.3. Accessing WLP Context Objects from JSF Managed Beans 78
    15. Portal Navigation Chapter .................................................... 80
    15.1. Programmatically Constructing JSF Portlet URLs ........ 80
    15.2. Changing the Active Portal Page.................................. 80
    15.3. Redirects within a Portal............................................... 83
    16. Ajax Enablement Chapter .................................................... 85
    16.1. Ajax in JSF Portlets...................................................... 85
    16.2. Partial Page Rendering Pattern.................................... 85
    16.3. Stateless API Request Pattern ..................................... 86
    16.4. Portlet Aware API Request Pattern .............................. 87
    16.5. Controlling the WLP Ajax Framework........................... 91
    17. Additional WLP Features Chapter........................................ 93
    17.2. Portlet Container Features ........................................... 93
    17.3. Portal Container Features ............................................ 98
    18. Example: Implementing a Login Portlet Chapter .................. 99
    18.1. Login Portlet Motivation................................................ 99
    18.2. Login Portlet Design..................................................... 99
    18.3. Login Portlet Implementation...................................... 101
    Part 3: Integrating Third Party Libraries
    19. Integration Overview Chapter............................................. 111
    19.1. Types of Libraries....................................................... 111
    19.2. Roadmap for MyFaces Trinidad and ADF Faces Rich Client 111
    20. Using the Facelets View Technology Chapter.................... 113
    20.1. Introduction to Facelets .............................................. 113
    20.2. Configuring Facelets Support ..................................... 113
    21. Using the Apache MyFaces Tomahawk Component Library Chapter 115
    21.1. What is Apache MyFaces Tomahawk? ...................... 115
    21.2. Support for Tomahawk in WLP................................... 115
    21.3. Tomahawk Component List........................................ 116
    21.4. Installing and Configuring Tomahawk......................... 119
    21.5. Resolving the Duplicate ID Issue................................ 120
    21.6. Referring to Resources .............................................. 120
    21.7. forceId Attribute.......................................................... 124
    21.8. File Upload................................................................. 125
    22. Using the Apache Beehive Navigation Controller Chapter . 126
    22.1. Apache Beehive Page Flow ....................................... 126
    22.2. JSF and Page Flows .................................................. 126
    22.3. Configuring the JSF Integration with Page Flows ....... 127
    Appendices
    23. Appendix 1: Consolidated List of Best Practices ................ 130
    24. Appendix 2: Known Issues and Workarounds.................... 132
    24.1. CR383659, CR383662 Inconsistent failures with JSF portlets 132
    24.2. CR342124: IllegalStateException due to duplicate client-id 132
    24.3. CR384916: IllegalStateException due to duplicate client-id when using certain components such as Tomahawk and Trinidad...... 133
    24.4. CR361477 Problems with the integration of JSF portlets with Apache Beehive Page Flows.................................................................. 133
    24.5. CR377945 JSF 1.2 suffers from a memory leak during iterative development .............................................................................. 134
    25. Appendix 3: The JSFPortletHelper Class ........................... 135
    26. Appendix 4: The CleanupPhaseListener Class .................. 147

    Hi Peter!
    First, I wish to thank you for the great work.
    We followed your whitepaper and managed to deploy a JSF portlet on WLS.
    But we are not able to register it (consume it) as remote portlet in Oracle Portal 10.1.4. The error log is as follows:
    An error occurred while trying to refresh the provider. (WWC-43190)
    An error occurred during the call to the WSRP Provider:
    java.rmi.RemoteException: serialization error: serialization error:
    unexpected null value for literal data; nested exception is:
    serialization error: serialization error: unexpected null value for literal data
    com.sun.xml.rpc.encoding.SerializationException: serialization error:
    serialization error: unexpected null value for literal data
    com.sun.xml.rpc.encoding.SerializationException: serialization error:
    unexpected null value for literal data
    Java stack trace from root exception:
    unexpected null value for literal data
    at
    oracle.webdb.wsrp.RegistrationContext_LiteralSerializer.doSerialize(RegistrationContext_LiteralSerializer.java:107)
    at
    com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.internalSerialize(LiteralObjectSerializerBase.java:119)
    at
    com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.serialize(LiteralObjectSerializerBase.java:70)
    at
    oracle.webdb.wsrp.GetServiceDescription_LiteralSerializer.doSerialize(GetServiceDescription_LiteralSerializer.java:88)
    at
    com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.internalSerialize(LiteralObjectSerializerBase.java:119)
    at
    com.sun.xml.rpc.encoding.literal.LiteralObjectSerializerBase.serialize(LiteralObjectSerializerBase.java:70)
    at
    com.sun.xml.rpc.client.StreamingSender._writeRequest(StreamingSender.java:473)
    at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:62)
    at
    oracle.webdb.wsrp.WSRP_v1_ServiceDescription_PortType_Stub.getServiceDescription(WSRP_v1_ServiceDescription_PortType_Stub.java:63)
    at
    oracle.webdb.wsrp.client.design.v1.OraWSRP_v1_ServiceDescription_PortType.getServiceDescription(Unknown
    Source)Do you have any idea why this happens? Or you can provide some useful links to WLP -Oracle Portal federation?
    Thank you and best regards,
    PaKo

  • Problem with Portlet Backing Context

    Hi,
    I am having problem with Portlet Backing context.
    I have on portlet and one JPF associated with this portlet.
    Now in JPF action method i have Portlet Backing context object, using this object
    i tried to get the previous portlet state using portletCtx.getPreviousWindowState().
    But It always gives me null.
    can anyone help me out ? its very urgent.
    or you can suggest me anyother option to do this....
    Thanks,
    Vijay Patel

    Vijay -
    You might want to post this to the Portal newsgroup.
    Regards,
    Kunal
    "vijay patel" <[email protected]> wrote:
    >
    Hi,
    I am having problem with Portlet Backing context.
    I have on portlet and one JPF associated with this portlet.
    Now in JPF action method i have Portlet Backing context object, using
    this object
    i tried to get the previous portlet state using portletCtx.getPreviousWindowState().
    But It always gives me null.
    can anyone help me out ? its very urgent.
    or you can suggest me anyother option to do this....
    Thanks,
    Vijay Patel

  • Register the Oracle 9iFS Portlet with Oracle Portal

    I did register the Oracle 9iFS Portlet with Oracle Portal.
    But when I am adding the portlet to a portal page I get the error:
    "500 Internal Server Error"
    When I am trying to access the page by url:
    http://<myserver>:7777/ifs/portlet
    I get the error:
    "You are not authorized to view this page"

    not a problem with BEA , just means your database has been configured to close your session after a period of inactivity(which is normal).
    Check you connection pool testing settings and tune accordingly.

  • Weblogic Portal 10.3.5 using JSF 1.2 portlets with ADF faces

    We are developing Portal site using Weblogic Portal 10.3.5 with JSF portlet 1.2 and ADF faces (ADF Application runtime 11.1.1.5 ). But the JSF portlets not supporting ADF faces. Please let me know how we use ADF faces in JSF portlet 1.2 in Weblogic Portal.

    Hi Murthy,
    We did a detailed analysis.
    (1) How do we add ADF taskflows, JSF in to weblogic portal desktop/pages? Do we create portlet out of JSF, and display on desktop/page? If this is the case, what about ADf task flows?
    --> Taskflows can be deployed as WSRP2.0 portlets. Note 2 options are there JSF page as portlet or taskflow itself as portlets.
    (2) How do we integrate weblogic user profiles and UUP (unified user profiles) with ADF and JSF?
    --> ADF Security can use Weblogic Server realm as the security provider. Entitlements in WLP will have to be provided based on Weblogic Server roles. In case you are using external LDAP then both can be integrated withe external LDAP
    (3) Can anybody shed some light which this better?
    (a) weblogic portal with JPF (Java page flows), NetUI --Legacy approach
    Pros:
    -Easy Development
    -Well tested integrated
    Cons:
    -Future support
    -Enhancements may not be available
    -Not really portable or standards based
    (b) weblogic portal with ADF, JSF?
    Pros:
    -If your on Oracle stack then great
    -Standards based
    Cons:
    -JSF Portlet bridge issues
    -ADF Faces does not work on IE6!
    Well what we are going for is JSR 286, Trinidad components (Supports IE6), JSF.
    Difficult choice.
    Venkat

  • Problem with identifying the Train in Dynamic Region

    Hi,
    I have a two task flows(firstflow,secondflow) and they both have its own individual trains and they are all page fragments. Then I have my main page where in I created a dynamic region based on secondflow. Then in the same page I have dynamic region links for firstflow and secondflow. When I run the application I first see the second flow and its train. Now when I click the firstflow link. its corresponding page is showing up then when I click the train it then goes to the secondflow and its train, I cannot navigte within the firstflow and its train. Please let me know any solution to this. Thanks.

    Hi Chetan,
    Thanks. It did worked. When I first faced this problem and when I created the dynamic region I was propmpted to create the bean and I tried creating it wieth scope = session but then I could not run the application. So I kept it as request. But now when it is changed from the property inspector it is running. I need to try the first method again to see it that happens. Thanks for the solution.

  • How to use VPD in Java/Struts JSP portlet with SSO

    DB = 10.1.0 (Standard Edition)
    Portal = 9.0.4.1
    10gAS = 9.4.0.1 (EE)
    I am in the beginning stages of developing some portlets that will be Java/Struts JSP based. We use SSO and have implemented some VPD security in our DB by creating some views that use SYS_CONTEXT('USERENV','CURRENT_USERID').
    These Java portlets connect to the DB using a defined JDBC connection for the OC4J container they are deployed in. The problem I'm having is that the call to SYS_CONTEXT is returning the user of the JDBC connection and not the SSO user. So far I have been unable to find any documentation that will point me in the right direction to get this configured properly.
    Deployment and configuration are as follows. Deploy war file to custom container on app server. In the configuration of the OC4J contain the app used the containers default JDBC connection using the oracle.jdbc.pool.OracleDataSource class. Max and Min open connections are blank.
    In the portal configuration under Navigator - Providers tab we defined a new Registered Provider. In the Connections tab for the provider we Specify the URL Http://hpsrv02.simsol.com:7777/discovery-portlets/providers. Under "Specify how the user's identity will be set by the Portal..." the "The user has the same identity in the Web providers application as in the Single Sign-On identity" is selected. Under "User/Session Information" User is selected and Login Frequency is set to "Once per user session". Then we created a new portal page and created a new portlet with the new provider.
    Just an FYI I do have Discoverer working with VPD and any report portlet, dynamic page portlet and any other type of portlet I created all work correctly with VPD it is just the java/struts one that is not working.
    So does any one have any insight into what configuration steps I have missed?
    Any help is much appreciated,
    Ed Klinger

    Ed,
    Your java code must get the SSO username (it's just a HTTP header variable) :
    ie: code sample...
    Enumeration e = request.getHeaderNames();
    while (e.hasMoreElements()) {
    String name = (String)e.nextElement();
    String value = request.getHeader(name);
    out.println("<br> "+name + " = " + value);
    if (name.toUpperCase().trim().equals("OSSO-USER-DN")){
    dn_user=value;
    out.println("<br>******** USER DN = "+dn_user);
    Then, the SSO username can be used in the VPD policy.
    Note that there is a difference between the sso username and the database username . SSO username is not known by database (CURRENT_USERID will return a database username)
    Discoverer worked OK in your case with the SYS_CONTEXT (.. CURRENT_USERID) because authentication is made by database user, probably.

  • Struts Portlet With Input Parameters

    Hi Everyone,
    Am I able to write a struts portlet that has input parameters? Right now, I have a struts portlet with a provider.xml that looks like this:
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <?providerDefinition version="3.1"?>
    <provider class="oracle.portal.provider.v2.DefaultProviderDefinition">
    <session>true</session>
    <passAllUrlParams>true</passAllUrlParams>
    <portlet class="oracle.portal.provider.v2.DefaultPortletDefinition">
    <id>1</id>
    <name>ManageQuotes</name>
    <title>Manage Quotes Portlet</title>
    <description>Manage Quotes Portlet</description>
    <timeout>40</timeout>
    <showEditToPublic>false</showEditToPublic>
    <hasAbout>false</hasAbout>
    <showEdit>false</showEdit>
    <hasHelp>false</hasHelp>
    <showEditDefault>false</showEditDefault>
    <showDetails>false</showDetails>
    <inputParameter class="oracle.portal.provider.v2.DefaultParameterDefinition">
    <name>encryptedDealerNumber</name>
    <displayName>encryptedDealerNumber</displayName>
    </inputParameter>
    <renderer class="oracle.portal.provider.v2.render.RenderManager">
    <renderContainer>true</renderContainer>
    <renderCustomize>true</renderCustomize>
    <autoRedirect>true</autoRedirect>
    <contentType>text/html</contentType>
    <showPage class="oracle.portal.provider.v2.render.http.StrutsRenderer">
    <defaultAction>/viewquotes.do</defaultAction>
    </showPage>
    </renderer>
    </portlet>
    </provider>
    The <session>true</session> and <passAllUrlParams>true</passAllUrlParams> need to be there to have a struts portlet. The problem is when I put my portlet on a page and then check out 'Page Properties', 'Portlet Parameters', there are no parameters that show up for my portlet. Can anyone help me?
    Thanks
    Cory

    I just went through this two days ago. I ended up logging a TAR/SR with Oracle and it turns out Struts portlets do not support input parameters. Instead you have to set the passAllUrlParams tag to true and then just use portletRequest.getParameter("parameterName") to retrieve page parameters. You have to be careful here because in this older style of doing parameters you have to manage all the uniqueness in naming parameters in case you have more than one portlet on the same page. However, it seems that if all you want to do is read the portal page parameters that unique naming doesn't come into play.
    In my case I have an OmniPortlet setting some Page Parameters via an Event. Then in my struts portlet I just do:
    String foo = "";
    String bar = "";
    PortletRenderRequest portletRequest = (PortletRenderRequest)
    request.getAttribute(HttpCommonConstants.PORTLET_RENDER_REQUEST);
    if ( portletRequest != null ) {  
    foo = portletRequest.getParameter("Foo"));
    bar = portletRequest.getParameter("Bar"));
    That seems to work just fine for me, but in my case I will only ever use my portlet once per page so this fine. If you wanted the same portlet to have different page parameters fed to it for different instances on the same page this style won't work since all the portlets would just read the same page parameters since those page parameters names are coded in the implementation code.
    Hope that helps,
    David

  • JSF Portlet with RichFaces implementation

    I am trying to build a JSF 1.1 portlet with RichFaces implementation.
    Although, the portlet gets displayed with out any errors. I do not see the RichFaces capabilities getting executed such as "A4J:support" tag is not doing an Ajax based form validation.
    Any help on this? Are there any completed PoCs on RF compatibility with JSF portlets.
    Thanks
    Rajesh

    Hello,
    Have you resolved your issue ? I am also trying to run a RichFaces-based webapp on an Oracle portal (WCI) and I have some troubles.
    If you have time to look at my problem, I created a post here Oracle JSF Bridge with JBoss Richfaces .
    Thanks
    K.L.

  • Help needed with portlet webflow

    How can I get a portlet to invoke the JSP that it was associated with in EBCC when
    the portal page is invoked from the navigation tab (regardless of what JSP was
    invoked last due to a portlet webflow) ?
    This can be best explained by describing the scenario:
    I have 2 portal pages P1 & P2. Each portal page contains a portlet. The portlet
    on portal page P2 is associated with a page, say J1.jsp & a portlet webflow (generated
    by the portlet wizard). The portlet webflow contains a flow between J1.jsp & J2.jsp
    for a certain event.
    - When the tab is clicked to show portal page P2, the portlet displays content
    generated by J1.jsp as expected. This content contains a link to navigate to J2.jsp
    - When a link is clicked to flow to J2.jsp (<portlet:createWebflowURL event="e1"/>),
    content generated by J2.jsp is displayed by the portlet on page P2 as expected.
    - I click on the main navigation tab to go to portal page P1
    At this point if I click the main navigation tab to go to P2, the portlet still
    displays content generated by J2.jsp instead of re-invoking J1.jsp. Is there a
    way to influence this behavior to always invoke the JSP that was associated with
    the portlet in EBCC when the portal page is displayed by clicking on the navigation
    tab ?
    Any help is greatly appreciated. Thanks !

    Jalpesh,
    That worked. Thank you !
    Shah
    Jalpesh Patadia <[email protected]> wrote:
    Hello Sidi,
    What you can do is that in the webflow of your portlet there will be
    an
    event called "bea.portal.framework.internal.refresh"
    This event is pointing to "portal_lastContentUrl" which is why you are
    seeing the behaviour of displaying J2.jsp when you go back to page P2.
    What you can do is point this event to J1.jsp, that way whenever the
    page is refreshed (which is what happens when you click on your tab)
    you
    will be taken to J2.jsp.
    However, the side effect is that if your portlet displays J2.jsp and
    you
    just did a browser refresh (F5 in IE) it will still revert back to
    J1.jsp. If that is ok with you then you do not have to do anything
    special, if not you will probably have to write an InputProcessor after
    the event which will redirect based on what was done by the user.
    Thanks,
    Jalpesh.
    Shah Sidi wrote:
    How can I get a portlet to invoke the JSP that it was associated within EBCC when
    the portal page is invoked from the navigation tab (regardless of whatJSP was
    invoked last due to a portlet webflow) ?
    This can be best explained by describing the scenario:
    I have 2 portal pages P1 & P2. Each portal page contains a portlet.The portlet
    on portal page P2 is associated with a page, say J1.jsp & a portletwebflow (generated
    by the portlet wizard). The portlet webflow contains a flow betweenJ1.jsp & J2.jsp
    for a certain event.
    - When the tab is clicked to show portal page P2, the portlet displayscontent
    generated by J1.jsp as expected. This content contains a link to navigateto J2.jsp
    - When a link is clicked to flow to J2.jsp (<portlet:createWebflowURLevent="e1"/>),
    content generated by J2.jsp is displayed by the portlet on page P2as expected.
    - I click on the main navigation tab to go to portal page P1
    At this point if I click the main navigation tab to go to P2, the portletstill
    displays content generated by J2.jsp instead of re-invoking J1.jsp.Is there a
    way to influence this behavior to always invoke the JSP that was associatedwith
    the portlet in EBCC when the portal page is displayed by clicking onthe navigation
    tab ?
    Any help is greatly appreciated. Thanks !

  • Building portlets with PL/SQl vs java

    Hi
    We are planing to use oracle 9iAS application server(Enterprise version)to build portal application.
    Can someone suggest me which one should i use, building portlets with j2ee or building portlets with PL/SQL.
    what are the advantages of web providers over database providers?which one is the best way of building portlets.

    Hello
    I've been using Portal for years now, and I'm still developping in PL/SQL. It's very simple and quick to developp. I'm even not using any database providers, I'm just invoking my procedures via their URLs with some Ajax hidden components, and I could developp some screens like employees vacations managements, trombinoscope, portal statistics, etc ...
    I learnt at Oracle how to developp some "true" portlets with DB providers but it's not usefull for me at this time as I don't need portlet customization etc.
    BUT
    if I had to developp a really big project with several developpers I would use DB providers.
    And maybe I would use Java but it takes rather long time to be efficient with this language and it needs to be a realy big project for I start using this language. And as explained above Java offers more compatibility with 3rd party products.
    And last but not least, one has to know what Oracle is more and more dealing with Java, the next 11g version that has just released is much more using Java than 10g does, and that's true for every Oracle products.
    So it's just a matter of skill and time.
    A.

  • The PCD folder with all par files in the portal is empty

    Hi all gurus.
    I have a customer that failed with a transport of iviews between two portals, the par file was not included even if attribute "include dependent objects" was checked.
    I have met this problem before and the only(?) solution is to download the par file separately and import it into the receiving portal and then create a new iview from it.
    Here is my problem: when I at this certain customers portal go to "System Administration > Support > Support Desk > Portal Runtime > Test and Configuration Tools > Browse Deployment" and then browse to "Root > WEB-INF > deployment > pcd" that last folder is empty! Blank!!!
    On all portals I've seen that folder alwasys shows all standard par files along with deployed stuff but here the folder just shows a white page with the text "The folder is empty".
    I don't think it's a matter of authority since I have added "super-admin role" and all possible content admin roles to my user without any change, the folder is still empty.
    Does anyone have an idear about what is going on here?
    Best regards
    Benny Lange

    Hi Raghu.
    Your are missing my point: it's not about what content to export, it's about the folder being totally empty. I can't see the par files belonging to our deployed code either.
    Of course I could upload the par file from Eclipse workbench from where I first uploaded the par file to the development enivironment, but I find it alarming that the folder is empty when it's full of par files in every single portal I have seen so far.
    Best regards
    Benny

Maybe you are looking for

  • How do I set up my external HD?

    I've just received my Western Digital "My Book" external hard drive. I plugged it in and the first thing it asked me was if I'd like to use it with Time Machine. I clicked "decide later", because I'm not exactly sure. The thing is, I WOULD like to us

  • Can't read a password protected pdf created in windows on mac

    I converted a word document to a pdf and password protected it with acrobat 9.  When the pdf is opened in mac preview only the first page is visible. all other are blank.  Would appreciate advice.

  • 11gR2 mappings to SQLServer via gateway

    Hi all, we are evaluating the dataloading from SQLServer 2005 either via code template or via gateway (both cost a fortune in licences). The code template runs well but I don't know how to pass a dynamic filter criterion (e.g. a date) derived from th

  • Opening prefs in CS4 causes strange UI glitch

    If I open preferences, I get a 'ghosted' version of the close, minimize, and maximize buttons in the top right corner. The 'ghosted' version is on top and takes focus, the 'real' version doen't work. I don't have to do anything in preferences, just o

  • Dynamic List (NOT LOV)

    Has anyone tried to create a list dynamically based on table data. This is not a List of Values as I want to be able to join several tables together and then allow the user to drill down. Example: Select a.master_key, b.detail_key, c.detail_key from