Table 4 Known Limitations and Workarounds for WebLogic Portal Framework and Development
|
|
|
The Export/Import Utility creates an additional locale for artifacts imported in a non-English locale
This problem occurs in the situation where the user localizes a book in the library to a non-en_US locale, and then exports the book as a .pinc and imports the .pinc to a destination in the non-en_US locale. Upon importing the resource, scoped to the Library level, the Export/Import Utility creates an entry in the L10N_LOCALE table for all pages and books in the library rather than only in the main book, even though the other library artifacts were not localized.
Workaround: Avoid using the Library scope when importing the .pinc resource in a non-en_US locale.
|
|
8.1.x producer unable to process attachments sent from a 9.2 consumer
When a consumer is consuming a portlet deployed on a WebLogic Portal 8.1.x producer, the producer may fail to process file uploads. This issue effects WebLogic Portal 8.1 SP4 and SP5.
Workaround: Contact support for a patch for CR268263.
|
|
KeyBootstrap class failed to generate keys
Because of incompatible use of domain-scoped start up classes, commerce applications built using BEA commerce functionality do not support the use of application-scoped JDBC pool.
|
|
When async rendering is enabled for a portlet, portlets can not directly change window modes or states
WebLogic Portal allows portlets to change the current window state and/or mode of a portlet either programmatically, or via parameters added to URLs. When async rendering (either via AJAX or iframes), these mechanisms will not provide a consistent view to the end user. Particularly, the title bar rendered above the portlet will not reflect the change in the mode or state immediately.
|
|
Proxy portlet state management: 8.1.x consumers do not properly recover producer session timeouts
For a federated configuration in which the consumer is running 8.1.x, the consumer may not recover properly from producer session timeouts.
- The consumer session timeout must be strictly less than the smallest positive session timeout of all producers. For example, suppose a consumer portal has three proxy portlets PP1, PP2 and PP3 corresponding to three remote producers RP1, RP2 and RP3. RP1 has no sessions (session timeout = 0), RP2 has a session timeout of 5 min. and RP3 has a session timeout of 2 minutes. Then the session timeout for the consumer must be less than 2 minutes.
- Assign all proxy portlets to a different group. The downside of this option is that remote portlets that wish to share state cannot.
- Finally, if (1) and (2) are not viable options, the user will need to close his or her browser and reopen the portal in the event of a producer session timeout.
|
|
Uncompressed URL templates must be used when generating off-site URLs
When using GenericURL, its subtypes or the corresponding JSP tags to generate off-site URLs (i.e.: URLs to resources that are not hosted in the web application of the code generating the URL) in a web application that has compression enabled, a URL template with compression disabled must be specified.
GenericURL redirectURL = GenericURL.createGenericURL(request, response);
redirectURL.setDomain("www.yahoo.com");
redirectURL.setPath("/compressedUrl/index.html");
redirectURL.setTemplate("no_compression_template");
where "no_compression_template" is the name of a URL template that excludes the {url:compression} pseudo-token.
Workaround: Do not use URL compression, or do not use GenericURL to construct URLs to off-site resources.
|
|
Cannot disable IFRAME-based asynchronous portlet content rendering
Asynchronous portlet content rendering can be disabled for certain operations through the use of the <render:context> tag or the AsyncContentContext class. These mechanisms do not work correctly when IFRAME-based asynchronous rendering is used.
Workaround: Turn off asynchronous rendering or use AJAX-based asynchronous rendering.
|
|
Server port changes that are made to a running server require a portal application restart
If a server port (HTTP or HTTPS) is made to a running server, any affected portal applications need to be restarted for the changes to be picked up.
Workaround: Redeploy the EAR.
|
|
URLTemplate Errors logged during deployment of a GroupSpace application
The following error messages are logged in the domain log and in the server console when deploying a GroupSpace application:
<Jun 23, 2006 11:27:00 AM MDT> <Error>
<org.apache.beehive.netui.core.urltemplates.URLTemplate> <000000> <Required
token, {url:queryString}, not found in template: {url:path}>
<Jun 23, 2006 11:27:00 AM MDT> <Error>
<org.apache.beehive.netui.core.urltemplates.URLTemplate> <000000> <Required
token, {url:path}, not found in template:
{url:scheme}://{url:domain}:{url:port}>
<Jun 23, 2006 11:27:00 AM MDT> <Error>
<org.apache.beehive.netui.core.urltemplates.URLTemplate> <000000> <Required
token, {url:queryString}, not found in template:
{url:scheme}://{url:domain}:{url:port}>
<Jun 23, 2006 11:27:00 AM MDT> <Error>
<org.apache.beehive.netui.core.urltemplates.URLTemplate> <000000> <Required
token, {url:queryString}, not found in template: {url:path}>
<Jun 23, 2006 11:27:00 AM MDT> <Error>
<org.apache.beehive.netui.core.urltemplates.URLTemplate> <000000> <Required
token, {url:path}, not found in template:
{url:scheme}://{url:domain}:{url:port}>
<Jun 23, 2006 11:27:00 AM MDT> <Error>
<org.apache.beehive.netui.core.urltemplates.URLTemplate> <000000> <Required
token, {url:queryString}, not found in template:
{url:scheme}://{url:domain}:{url:port}>
Workaround: The messages can be ignored and do not effect the deployment of the application
|
|
PostbackURLs used within floated or async portlets will cause loss of state
Using PostbackURLs (not derived types) within a floated or async portlet will cause the portlet to lose various aspects of its state, including the results of render caching. Additionally, multiple instances of such portlets will begin to share state.
- Use alternative mechanisms for generating URLs more appropriate to the portlet type, such as <render:jspContentUrl> or <netui:anchor>.
- Add GenericURL.WINDOW_LABEL_PARAM directly to the PostbackURL with the value returned from PortletPresentationContext.getLabel() or PortletBackingContext.getLabel().
|
|
WebLogic Portal does not support changing the context-root of an existing portal web application with customized portal objects.
Once a .portal file has been customized, or if entitlements have been created for a desktop, the context-root of the web application cannot be changed without losing the customizations and the entitlements.
Workaround: Do not change the context-root value:
|
|
The onInit events are not supported for remote portlets
Portlets can optionally register an event handler to get notified when portlets gets initiated by registering a handler of type "onInit". This feature is not currently supported for remote portlets.
Workaround: In general, portlets can run onInit logic lazily either when a user interaction occurs, or when another event is handled.
|
|
"[ERROR] IdentifierToken" warning message appears in console
Certain actions using the WLP Online Tools console can generate console errors that look like this:
[ERROR] IdentifierToken - Can not update the identifier "itemID" on a null value object. [ERROR] ExpressionEvaluatorImpl - Exception when attempting to update the expression "{actionForm.itemID}" with available binding contexts [actionForm, pageFlow, globalApp]. Root cause: java.lang.RuntimeException: Can not update the identifier "itemID" on a null value object. Throwable: java.lang.RuntimeException: Can not update the identifier "itemID" on a null value object.
Stack Trace: java.lang.RuntimeException: Can not update the identifier "itemID" on a null value object. ...
This error message is harmless, and can be ignored.
Workaround: Disregard the error message.
|
|
Limitations of Portal 10.0 Look & Feel files related to Netscape 7.1
The Portal 10.0 look and feel files are generally considered to be incompatible with Netscape 7.1 due to an incomplete implementation of modern standards for web-based applications, such as CSS. Because the Portal 10.0 look and feels are based on these modern standards, users of Netscape 7.1 can expect to encounter problems with many aspects of these look and feels. Problem areas include: layouts, multilevel menus and image rollovers.
Platform: Netscape web browser version 7.1
Workaround: Upgrading to Netscape 7.2 should resolve many of these issues, and upgrading to Netscape 8.x should resolve ALL of these issues. Alternatively, the "legacy" look and feel can be used as it was designed specifically for older browsers.
|
|
For an Ajax-enabled Desktop (Enable Asynchronous Updates - Enabled), the Cancel button in the Content Presenter Configuration Wizard does not work
If a Desktop or Community has Enabled the Enable Asynchronous Updates option, the Cancel button in the Content Presenter Configuration Wizard will not cancel out of the Wizard. Saving and Previewing are not affected and work correctly.
Workaround: To cancel out of the Wizard, use the title bar button called "Leave Edit", or log out of the desktop
|
|
Redirects in Ajax enabled desktops (asyncMode=enabled)
For an Ajax-enabled Desktop, when adding parameters to a redirect URL they do not get decoded.
Workaround: Call setForcedAmpForm(false) before adding parameter. For example: PostbackURL postback = PostbackURL.createPostbackURL(request, response); postback.setForcedAmpForm(false); postback.addParameter(RETURNED_FROM_CONFIG_KEY, "true");
|
|
Deprecated versions of the Look and Feels (for example, Classic) do not support the 10.0 AJAX portlet implementation
The behavior of the 10.0 AJAX implementation is nondeterministic when used with the deprecated Look and Feels.
Workaround: Use disabled or compat_9_2 mode. See Javadoc for com.bea.netuix.application.definition.DesktopDefinition.setAsyncMode.
|
|
MySQL Database CREATION_DATE columns are erroneously updated when UPDATEs occur
Several WebLogic Portal database tables contain CREATION_DATE columns that should only be initialized when new data rows are INSERTed. These columns are erroneously being updated when data is UPDATEd to the current date timestamp.
Platform: Any using the MySQL database.
|
|
AJAX requests are not handled properly
AJAX requests submitted by portlets using XMLHttpRequest are not handled properly by the portal framework. As a result, portlets cannot receive proper runtime context on the server side while processing AJAX requests.
Workaround: To receive proper runtime context on the server side, portlet developers must use the wrapped XMLHttpRequest object called com.bea.netuix.ajax.client.XMLHttpRequest instead of the browser's native XMLHttpRequest object for all browser-server communication.
|
|
JSF portlets require the Sun Reference Implementation and the 'server' STATE_SAVING_METHOD
By default, the Workshop JSF facet makes the following configuration choices:
- Uses MyFaces as the JSF implementation
- Configures the 'client' STATE_SAVING_METHOD in web.xml
When building JSF portlets in a Portal Web Project, the default configuration of JSF is not supported. It must be changed to use the Sun RI implementation and the 'server' STATE_SAVING_METHOD.
To select the JSF implementation:
- In the Project facet selection dialog, select version 1.1 from the dropdown menu for the JSF facet.
- Check the box for the JSF facet.
- Then click the Next button until the JSF library module configuration pane appears.
- Select the 'Use Sun RI WebLogic J2EE Library' library module, which is the Sun Reference Implementation.
To configure the 'server' STATE_SAVING_METHOD:
- Open web.xml. There is a context parameter named 'javax.faces.STATE_SAVING_METHOD'.
- Set the value of this parameter to 'server', replacing 'client'.
Workaround: Use the Sun RI JSF implementation and the 'server' STATE_SAVING_METHOD.
|