Skip Headers

Oracle® Application Server Portal Developer's Guide 10g Release 3 (10.1.3) B25601-01 |
| Home | Solution Area | Contents | Index

Previous | Next |

# B Troubleshooting Portlets and Providers

This appendix describes common problems that you might encounter when using OracleAS Portal and explains how to solve them. It contains the following topics:

- Diagnosing General Portlet Problems

- Diagnosing Java Portlet Problems

- Diagnosing OmniPortlet Problems

- Diagnosing Web Clipping Problems

- Need More Help?

Note: Throughout this chapter, you will see references to ORACLE_HOME. ORACLE_HOME represents the full path of the Oracle home, and is used in cases where it is easy to determine which Oracle home is referenced. The following conventions are used in procedures where it is necessary to distinguish between the middle tier, OracleAS Infrastructure, or Oracle Application Server Metadata Repository Oracle home: MID_TIER_ORACLE_HOME, represents the full path of the middle-tier Oracle home. INFRA_ORACLE_HOME, represents the full path of the Oracle Application Server Infrastructure Oracle home. METADATA_REP_ORACLE_HOME, represents the full path of the OracleAS Infrastructure home containing the Oracle Application Server Metadata Repository.

## B.1 Diagnosing General Portlet Problems

This section describes common problems and solutions for all portlets. It contains the following topic:

- Portlet Refresh Failure

- HTML Tags Appearing in Portlet

### B.1.1 Portlet Refresh Failure

When using the JavaScript `document.write()` method in conjunction with a Mozilla browser, you may find that portlet refresh does not work.

Problem

When using a Mozilla browser, such as Firefox, the `document.write()` method causes portlet refresh to no longer work as expected.

Solution

Avoid using `document.write()` in your output if you also want portlet refresh to work on Firefox. If this is not possible, you can choose to have the portlet not display the Refresh and Restore icons during rendering. You can also turn off portlet refresh and restore at the region level.

### B.1.2 HTML Tags Appearing in Portlet

After upgrading from an earlier release to Release 10.1.4, you may find unformatted HTML appearing in your portlets, for example, in the portlet title.

Problem

When viewing a portlet, you see raw HTML. For example, you might see the following in a portlet title:

    <b>Oracle Application Server 10<i>g</i> Collateral</b>

when what you expected to see was:

Oracle Application Server 10 g Collateral

To protect against cross site scripting (XSS) attacks, OracleAS Portal Release 10.1.4 escapes all user input by default. Thus, some HTML that was formatted in earlier releases now appears unformatted because it has been escaped to plain text.

Solution

You can resolve this issue in one of two ways:

- Tell your users to stop entering HTML tags as part of their input and have them enter only plain text.

- Turn on compatibility mode to make your OracleAS Portal instance behave the way it did in releases prior to Release 10.1.4, that is, stop the default escaping of HTML to plain text. Note that turning on compatibility mode makes your portal instance less secure.

For more information on these options, refer to Oracle Application Server Portal Installation and Upgrade Guide.

## B.2 Diagnosing Java Portlet Problems

This section describes common problems and solutions for Java portlets. It contains the following topics:

- Portlet Logging

- Installation and Deployment Problems

- Java Portlet Wizard Not Available

- Portlet Code Does Not Compile

- Application Server Connection Test Fails

- Provider Test Page Shows Error

- Portlet Does Not Display on Page

- After Initial Successful Display, Portlet Does Not Display on Page

- Provider Group Not Created

- URL-Based Portlet Does Not Work

### B.2.1 Portlet Logging

In addition to specific issues listed in the other sections of this appendix, the following general techniques can help you to troubleshoot portlet problems.

Problem 1

When accessing a portal page, the portlet does not display or displays an error message.

Solution 1

Check the application log file look for errors.

For OracleAS Portal:

    MID_TIER_ORACLE_HOME/j2ee/OC4J_Portal/application-deployments/portal/OC4J_Portal_default_island_1/application.log

For a custom Web provider:

    MID_TIER_ORACLE_HOME/j2ee/OC4J_instance_name/application-deployments/web_application_name/OC4J_Portal_default_island_1/application.log

Problem 2

Pertinent information that may help solve the problem is not being recorded in the log file.

Solution 2

Increase the provider's log level to produce more detailed logging information by adding the following entry to the `web.xml` file:

    <env-entry>
    <env-entry-name>oracle/portal/provider/global/log/logLevel</env-entry-name>
      <env-entry-value>6</env-entry-value>
      <env-entry-type>java.lang.Integer</env-entry-type>
    </env-entry>

You may also change this value for runtime by editing `orion-web.xml` or updating it in the Grid Control Console. You may have to restart OC4J to ensure that the changes made to the configuration file take effect.

### B.2.2 Installation and Deployment Problems

This section describes problems that you may encounter when installing and deploying the PDK-Java framework and samples.

#### B.2.2.1 Cannot Find a Java Class Object

You receive an error message about a Java class that does not exist. For example:

    An unexpected error occurred-29540 : class
      oracle/webdb/provider/web/HttpProviderDispatcher does not exist (WWC-43000)

Problem

The referenced Java class object is not in the database or it is invalid. OracleAS Portal, not PDK-Java, generates the error message when it cannot execute the class.

Solution

Log in to the database as your main OracleAS Portal schema. Execute a SELECT statement to verify that the object is in the schema. For example:

    SELECT object_name, object_type, status FROM user_objects
      WHERE object_name like '%HttpProvider%'

Note that the name between quotes is case sensitive.

You should receive the following back:

    /3334f18_HttpProviderDispatcher

Check for invalid or missing JAVA CLASS objects. Something could be wrong with the OracleAS Portal installation. If so, then recompiling invalid objects might help resolve it.

#### B.2.2.2 Cannot Deploy the template.ear File

You receive the following error message when deploying your EAR file based on `template.ear`:

    Invalid J2EE application file specified - Base Exception:
    Cannot get xml document by parsing WEB-INF/web.xml in template.war: <Line 88,
    Column 14> : '--' is not allowed in comments.
    Resolution:

Problem

The `web.xml` file contains a syntax error.

Solution

Verify that the syntax of `web.xml` is correct. Some versions of `web.xml` shipped in `template.war` have a misplaced comment tag. Make sure that all opening comment tags, `<!--`, have a matching closing tag, `-->`, before starting a new comment tag.

#### B.2.2.3 Error When Attempting to Register Provider

A number of errors may occur when you attempt to register your provider. This section explains what can go wrong and how you can correct it. If your scenario is not covered below, then check the `application.log` of your provider or, if that does not help, use `logcfg.sql` for Portal Repository logging. For more information `logcfg.sql` and `application.log`, refer to the Oracle Application Server Portal Configuration Guide.

Problem 1

You receive the following error message:

    Internal error (WWC-00006)
    The provider URL specified may be wrong or the provider is not running.
    (WWC-43176)

When OracleAS Portal attempts to register your provider, it must contact the listener that serves your Web portlets. If you have already accessed the provider's test page, `http://``host``.``domain``:``port``/``context``/providers/``servicename`, according to the installation instructions, OracleAS Portal may not recognize your machine.

Solution 1

Make sure the machine where OracleAS Portal resides can access your Web provider listener. The easiest way to test this setup is to start a browser on the host of the OracleAS Portal repository database and try to access the provider's test page. If the browser needs a proxy setting to reach the provider, then you should set the same proxy for OracleAS Portal on the Administer tab. You should also use this proxy when registering the provider.

If your Web provider server is not part of the DNS, then add an entry in the OracleAS Portal server's host file.

If a firewall exists between the machine with the OracleAS Portal database and the machine with the provider, then make sure that the necessary port is open.

Problem 2

You receive the following error:

    Internal error (WWC-00006)
    The provider URL specified may be wrong or the provider is not running.
    (WWC-43176)
    The following error occurred during the call to Web provider: Can't read
    deployment properties for service: _default (WWC-43147)

When you register a provider, you have the option of specifying a Service Id. If you do not specify anything in the Service Id field, the registration URL will not contain the service name part, `http://``host``.``domain``:``port``/``context``/providers/`. Therefore, OracleAS Portal is looking for a default service, which is stored in a deployment file called `_default.properties`. When this file is not found, you receive this error.

Solution 2

Make sure that you bundle a file called `_default.properties` into your WAR file with the following path:

    /Web-inf/deployment/

The `_default.properties` file should define the default service to use when none is specified for the provider. The file should look similar to the following:

    serviceClass=oracle.webdb.provider.v2.adapter.soapV1.ProviderAdapter
    loaderClass=oracle.portal.provider.v2.http.DefaultProviderLoader
    showTestPage=true
    definition=providers/test/provider.xml
    autoReload=true
    testPageURI=/htdocs/testpage/TestPage.jsp

Problem 3

You receive the following error message:

    Internal error (WWC-00006)
    The provider URL specified may be wrong or the provider is not running.
    (WWC-43176)
    The following error occurred during the call to Web provider: Can't read
    deployment properties for service: test (WWC-43147)

OracleAS Portal cannot find the deployment properties file for the service you specified in the Service Id field or the service name part of the registration URL, `http://``host``.``domain``:``port``/``context``/providers/``servicename`. For example, suppose you received this error in response to your attempt to register your provider with the following URL:

    http://host.domain:port/context/providers/test

In this case, you probably do not have a file called `test.properties` in your WAR file in `/Web-inf/deployment/`.

Solution 3

Make sure that you bundle a deployment properties file (for example, `test.properties`) into your WAR file with the following path:

    /Web-inf/deployment/

The file should look similar to the following:

    serviceClass=oracle.webdb.provider.v2.adapter.soapV1.ProviderAdapter
    loaderClass=oracle.portal.provider.v2.http.DefaultProviderLoader
    showTestPage=true
    definition=providers/test/provider.xml
    autoReload=true
    testPageURI=/htdocs/testpage/TestPage.jsp

Problem 4

You receive the following error message:

    An error occurred when attempting to call the providers register function.
    (WWC-43134)
    The provider URL specified may be wrong or the provider is not running.
    (WWC-43176)
    The following error occurred during the call to Web provider: Class
    oracle.portal.provider.v2.render.RenderManager has no set or add method for tag
    "createdOn" (WWC-43147)

Solution 4

If you are using `DefaultProvider`, `provider.xml` includes the element `<createdOn>`. When the XML is parsed, the initialization process looks for a method called `setCreatedOn` in the class representing the containing element. For example:

    <renderer class="my.local.Renderer">
    <createdOn>12-Mar-2001</createdOn>
    ...
    </renderer>

In this example, the initialization process looks for `my.local.Renderer.setCreatedOn()`. In your case, the appropriate method does not exist, causing this error.

Problem 5

You receive an error like the following:

    (WWC-00006)
    An unexpected error occurred: User-Defined Exception
    (WWC-43000)
    wwpro_api_provider_registry.register_provider
    An unexpected error occurred: ava.sql.SQLException: Inserted value too large for column:

This error indicates that your portlet has exceeded the data limit for a portlet. Each portlet is limited to 4K of data. The lengths of all of the following contribute toward this data limit:

- provider name, display name, and description

- parameter name, display name, and description

- event name, display name, and description

Solution 5

You can take two actions to reduce the amount of data used for the portlet:

- Reduce the length of the portlet's parameter and event names, display names, and descriptions.

- Reduce the number of parameters and events in your portlet

Problem 6

You receive an error similar to the following when trying to register your WSRP provider:

    An error occurred when attempting to call the providers register function.
     (WWC-43134)
    An error occurred during the call to the WSRP Provider: Java stack trace from root exception:
    java.rmi.ServerException: Internal Server Error
    (caught exception while handling request: oracle.webdb.wsrp.server.ContainerRuntimeException: An internal error has occurred in method <init>)
    at com.sun.xml.rpc.client.StreamingSender._raiseFault(StreamingSender.java:384)
    at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:245)
    at oracle.webdb.wsrp.WSRP_v1_Registration_PortType_Stub.register(WSRP_v1Registration_PortType_Stub.java:183)
    at oracle.webdb.wsrp.client.design.v1.OraWSRP_v1_Registration_PortType.register(Unknown Source). (WWC-43273)

When you configure OC4J standalone for WSRP, you must edit `data-sources.xml`. Typically, this message indicates a problem in your `data-sources.xml`.

Solution 6

Review the entry you added to `data-sources.xml` as per the procedure in Section 6.3.2, "Configuring OC4J Standalone". Ensure that the syntax is correct and that line breaks are occurring in the proper places. Also confirm that you can connect to the database with the specified user name, password, port, host, and service name.

#### B.2.2.4 Error Adding a Portlet to a Provider

You added a portlet to your provider, but, when you view the provider in OracleAS Portal, you do not see the new portlet.

Problem

The most common problem is a syntactical error in `provider.xml`, but it could also be that the updated `provider.xml` file is not being found for some reason.

Solution

Try the following:

- Examine `provider.xml`. Ensure that you have two syntactically correct opening and closing portlet tags within the provider tag. For example:

      <provider class="oracle.portal.provider.v2.DefaultProviderDefinition"
         session="true">
        <portlet class="oracle.portal.provider.v2.DefaultPortletDefinition"
          version="1">
          <id>1</id>
          ...
        </portlet>
        <portlet class="oracle.portal.provider.v2.DefaultPortletDefinition"
          version= "1">
          <id>2</id>
          ...
        </portlet>
      </provider>

- Stop and restart the listener to accept the changes to `provider.xml`. Check the test page for errors. If no errors are found, then restart the OC4J instance and refresh the provider.

- Check the `application.log` of the provider for errors.

#### B.2.2.5 Portlet Does Not Exist

You received the following error message:

    Error: The listener returned the following Message: 500 Portlet with id $1 doesn't
     exist

Problem

You removed a portlet from `provider.xml` without first removing the portlet from the page. The portlet no longer appears on the Customization page and therefore you cannot remove it from the page.

Solution

Delete the region that contains the portlet. Remember, when deleting a portlet from `provider.xml`, delete the portlet from the page first.

#### B.2.2.6 File Not Found

You receive the following error message:

    Request URI:/jpdk/snoop/snoopcustom.jsp Exception: javax.servlet.ServletException:
    java.io.FileNotFoundException:
    C:\iAS\Apache\Apache\htdocs\jpdk\snoop\snoopcustom.jsp (The system cannot find the
    path specified)

Problem

You added a JSP portlet to your page. OracleAS Portal cannot locate the JSP in the file system via `provider.xml`.

Solution

Confirm the file name and location and verify the information within `provider.xml`.

#### B.2.2.7 XML Parser Error

The XML Parser may fail at times when parsing your provider.xml. This section explains what can go wrong and how you can correct it.

Problem 1

You receive the following error message:

    Error: The XML parser encountered an Error, and could not complete the conversion
    for portlet id=150, it returned the following message: XML Parsing Error

You attempted to register your provider or display portlets on a page, and received the above error message. When altering `provider.xml`, one or more of the tags were corrupt and the file cannot be parsed.

Solution 1

Review `provider.xml` for errors.

Problem 2

You receive the following error message:

    Error: The XML parser encountered an Error, and could not complete the conversion
    for portlet id=146, it returned the following message: XSL reference value missing
    in XML document.

You attempt to add your portlet to a page or register your provider, and you receive the above error. The portlet information within `provider.xml` may be incorrect. Another possibility is that your classes cannot be located.

Solution 2

Check that no tags are missing and that they appear in the correct sequence. Verify that your class files exist and are specified correctly within `provider.xml`.

#### B.2.2.8 Error Adding Portlets

You receive the following error message when trying to add portlets to a page:

    Error: An unexpected error occurred: ORA-29532: Java call terminated by uncaught
    Java exception: Attribute value should start with quote.
    (WWC-43000) An unexpected error occurred: Attribute value should start with quote.
    at oracle.xml.parser.v2.XMLError.flushErrors(XMLError.java:205)

Problem

OracleAS Portal has an issue with `provider.xml`. Most likely, an attribute within the file is corrupt.

Solution

Review `provider.xml` for errors.

#### B.2.2.9 Content Request Timed Out

You receive the following error message:

    ERROR TIMEOUT FOR CONTENT=timeout

Problem

You successfully registered your Web provider. When adding portlets to a page or refreshing a page with existing portlets, you receive the above error message. This error indicates that OracleAS Portal timed out trying to contact your Java portlet listener.

Solution

Verify that you can still access the sample page:

    http://host:port/context/providers/servicename

You set the timeout period by adding the following `init` parameters to the page servlet of OracleAS Portal's `web.xml` at `MID_TIER_ORACLE_HOME``/j2ee/OC4J_Portal/applications/portal/portal/WEB-INF/web.xml`. Note that this `web.xml` file is for the Parallel Page Engine. For example:

    <init-param>
      <param-name>requesttime</param-name>
      <param-value>1000</param-value>
    </init-param>
    <init-param>  <param-name>minTimeout</param-name>
      <param-value>100</param-value>
    </init-param>
    <init-param>
      <param-name>stall</param-name>
      <param-value>500</param-value>
    </init-param>

For more information about web.xml and it's configuration parameters, refer to Oracle Application Server Portal Configuration Guide.

You may also set a timeout value for individual providers when you register them with OracleAS Portal. Note that the provider timeout value must match or exceed the `minTimeout` parameter value in `web.xml` in order to have any effect. For information about registering PDK-Java providers, refer to Section 6.6.2.5, "Registering and Viewing Your Portlet". For information about registering WSRP providers, refer to Section 6.4.2.4.1, "Adding Your Portlet".

#### B.2.2.10 Message 500 Returned

You receive the following error message:

    Error: The listener returned the following Message: 500

Problem

This generic message displays when OracleAS Portal receives an Internal Server Error while attempting to display your portlet. This problem might have any one of several causes.

Solution

Review the `application.log` file to discover the cause of the error.

For OracleAS Portal:

    MID_TIER_ORACLE_HOME/j2ee/OC4J_Portal/application-deployments/portal/OC4J_Portal_default_island_1/application.log

For a custom Web provider:

    MID_TIER_ORACLE_HOME/j2ee/OC4J_instance_name/application-deployments/web_application_name/OC4J_Portal_default_island_1/application.log

#### B.2.2.11 JPS Portlets with the get Method not Working

HTML forms can be submitted using either the `get` or `post` method, but the WSRP standard only requires the consumer (portal) to use the `post` method. Support of the `get` method is optional according to the standard. Since portal consumers are not required to support the `get` method, we highly recommended that you use the `post` method when developing your portlets.

Problem

You have JPS portlets that use the `get` method and they are not working correctly in OracleAS Portal. Forms with `get` lose the query string in the action URL when the form is submitted. The query string is needed for the portlets to return back to the portal and for the WSRP state.

Solution

Replace the `get` method with the `post` method.

#### B.2.2.12 Portlet Displays Session Expired Message After Redeployment

When you redeploy your portlets to the portlet container, all existing sessions between the producer and all of its consumers are lost. If a consumer tries to reuse an existing producer session, it may receive an error message the first time it tries to contact the producer after redeployment.

Problem

You receive an error message in your portlet the first time you access it after redeployment.

    Error: Could not get markup. The cookie or session is invalid or there is a runtime exception.

Solution

To reestablish the producer's session, refresh the portal page. You won't see this error message if you are re-accessing the portlet from a new browser session because it automatically establishes a new producer session.

### B.2.3 Java Portlet Wizard Not Available

In Oracle JDeveloper, when you try to open the Java Portlet Wizard by choosing File > New > Web tier, the Portlets menu selection is not present.

Problem

The Java Portlet Wizard is not installed.

Solution

Install the Portal Extension to Oracle JDeveloper, as described in Section 6.4.1, "Installing the Portal Extension for Oracle JDeveloper".

### B.2.4 Portlet Code Does Not Compile

When you try to compile the code for your portlet, you receive a compilation error.

Problem

The Portlet Development library is not selected.

Solution

Make sure that Portlet Development library is selected for the project. Edit your project's properties and select the Profiles > Development > Libraries entry in the pane on the right. Make sure that the Portlet Development library is listed under Selected Libraries.

### B.2.5 Application Server Connection Test Fails

In Oracle JDeveloper, the Application Server Connection Test fails with the message `Connection refused: connect`.

Problem 1

OC4J is not running.

Solution 1

Make sure OC4J is up and running by typing the following URL in your browser: `http://``yourhostyourdomain``:8888`

Problem 2

The connection information is incorrect.

Solution 2

Verify the connection information that you provided in the Connection Setup wizard.

### B.2.6 Provider Test Page Shows Error

When accessing the provider test page with your browser, an error is shown.

Problem 1

The `provider.xml` syntax is incorrect.

Solution 1

Correct the `provider.xml` syntax. Refer to the PDK-Java XML Provider Definition Tag Reference document on Portal Studio:

    http://portalstudio.oracle.com/pls/ops/docs/folder/community/pdk/jpdk/v2/xml_tag_reference_v2.html

Problem 2

Needed JAR files are missing from the deployment environment.

Solution 2

Search the JAR files for the missing class. When the missing JAR file is identified, you can add to the `lib` directory of the application from the Oracle JDeveloper Deployment Profile. Refer to the Oracle JDeveloper Online Help System for more information about the deployment profile.

### B.2.7 Web Provider Not Appearing in Portlet Repository

Users cannot see a Web provider, such as Omniportlet, in the Portlet Repository even though it has been registered successfully and is visible in the navigator.

Problem

The Web provider uses `DBPreferenceStore` and the database information stored in `data-sources.xml` is incorrect.

Solution

Correct the information in `data-sources.xml`. Refresh the provider and invalidate the Portlet Repository cache.

### B.2.8 Portlet Does Not Display on Page

When you access a portal page, the portlet does not display on the page.

Problem 1

The provider is not running.

Solution 1

Make sure that the provider is up and running by entering the provider registration URL in your browser's address bar.

Problem 2

The security manager for the provider is preventing the portlet from displaying.

Solution 2

In the provider definition file, `provider.xml`, delete or comment out the security manager, if any.

Problem 3

The user may not have the Execute privilege for the portlet as defined on the portlet's Access page.

Solution 3

Check the privileges for the portlet and, if the user or a group the user belongs to does not have the Execute privilege, grant them access. Portlets sometimes inherit their access privileges from the provider. You can use the Navigator in OracleAS Portal to find the portlet's provider and check its access privileges, then drill down to the portlet to see its access privileges.

Problem 4

You get an error trying to display the portlet after you redeployed it.

Solution 4

Refer to Section B.2.2.12, "Portlet Displays Session Expired Message After Redeployment".

### B.2.9 After Initial Successful Display, Portlet Does Not Display on Page

When you access a portal page, the portlet initially displays on the page but returns error messages in subsequent display attempts.

Problem

The provider session information is incorrect.

Solution

Check whether or not the provider uses sessions. If it does, edit the provider registration information to make sure that you registered it accordingly:

    Login Frequency: Once per User Sessions

You should also confirm that `<session>` is set to true in `provider.xml`.

### B.2.10 Provider Group Not Created

When you create a new provider group, the provider group is not created.

    Insufficient Privilege. Please contact the administrator for privilege in Default Provider Builder Instance.

You might also receive some `mod_osso` errors.

Problem 1

If you get `mod_osso` errors during authentication, the most likely problem is that `mod_osso` is not correctly configured on the middle tier or you have a `mod_osso` registration problem.

Solution 1

For information on reregistering `mod_osso`, refer to the Oracle Application Server Single Sign-On Administrator's Guide.

Problem 2

You have a problem in the `jpdk` application `classpath`.

Solution 2

Check the `jpdk` application log for errors.

Problem 3

The user does not have the necessary privileges to access these pages.

Solution 3

Modify `provideruiacls.xml` to grant the user the necessary privileges. `provideruiacls.xml` has two instances, one for PDK-Java providers and one for OracleAS Portal tools (such as Omniportlet) providers:

    MID_TIER_ORACLE_HOME/j2ee/OC4J_Portal/applications/jpdk/jpdk/WEB-INF/
    deployment_providerui

    HOME/j2ee/OC4J_Portal/applications/portalTools/providerBuilder/WEB-INF/
    deployment_providerui

The following code sample illustrates how you can add users in `provideruiacls.xml`:

    <object name="ANY_PROVIDER" owner="providerui">   <user name="orcladmin" privilege="500"/>   <user name="portal" privilege="500"/>

### B.2.11 URL-Based Portlet Does Not Work

Attempting to display your portlet via URL generates the following error message:

    500 INTERNAL SERVER ERROR

Problem

The `httpProxyHost` is not defined correctly.

Solution

In general, you should replace your URL-based portlets (formerly URL Services) with Web Clipping. Refer to Chapter 5, "Creating Content-Based Portlets with Web Clipping" for more information about Web Clipping.

If for some reason you must continue to use a URL-based portlet, check the default proxy information in your `provider.xml` file. For example:

    <proxyInfo class="oracle.portal.provider.v1.http.ProxyInformation">
       <httpProxyHost>www-proxy.us.oracle.com</httpProxyHost>
       <httpProxyPort>80</httpProxyPort>
    </proxyInfo>

Change the `httpProxyHost` and `httpProxyPort` proxy settings or remove these settings if you do not use proxy. Restart the OC4J instance to test if this resolves the problem.

## B.3 Diagnosing OmniPortlet Problems

This section provides information to help you troubleshoot problems you may encounter while using OmniPortlet.

To view errors that occur during the execution of OmniPortlet:

- Open the application log file: `MID_TIER_ORACLE_HOME``/j2ee/OC4J_Portal/application-deployments/portalTools/OC4J_Portal_default_island_1/application.log` or, if you are using a standalone OC4J instance: `OC4J_HOME``/j2ee/home/application-deployments/portalTools/application.log`

- Display the HTML source (for example, in Microsoft Internet Explorer browser, choose View > Source), and locate the errors embedded in the output HTML as comments.

To alter the logging level of the OmniPortlet Provider:

- Open the `web.xml` file and modify the `context-param` value of `oracle.portal.log.LogLevel` to the possible values ranging from `1` to `8` (where `8` means `debug`). The `web.xml` file is located at: `MID_TIER_ORACLE_HOME`/`j2ee/OC4J_Portal/applications/portalTools/omniPortlet/WEB-INF/web.xml`or, if you are using a standalone OC4J instance: `OC4J_HOME``/j2ee/home/applications/portalTools/omniPortlet/WEB-INF/web.xml`

The OmniPortlet errors that you are most likely to encounter, and possible solutions, are:

- OmniPortlet Cannot Access the Specified URL

- Portlet Content Is Not Refreshed

### B.3.1 OmniPortlet Cannot Access the Specified URL

Your OmniPortlet displays errors or does not display the correct content.

Problem 1

The URL is not active.

Solution 1

Type the URL directly in your browser address field to test its validity.

Problem 2

If a proxy server is required to reach the site, the proxy settings are not valid. The following messages may display:

    Failed to open specified URL.Cannot open the URL specified because of connection timeout.

Solution 2

Check that your proxy settings are valid by clicking Edit for the HTTP Proxy Setting in the OmniPortlet Provider Test Page.

Problem 3

The message `OmniPortlet timed out` displays in your OmniPortlet.

Solution 3

1. If a proxy server is required to reach the site, see Solution 2.

2. If the URL request takes a long time to process (for example, it executes a long running query), try increasing the timeout value (in seconds) in the OmniPortlet `provider.xml` file in `MID_TIER_ORACLE_HOME``/j2ee/OC4J_Portal/applications/portalTools/omniPortlet/WEB-INF/providers/omniPortlet`. If you change the timeout value, you also need to do the following:

   - Bounce your middle-tier.

   - Increase the provider registration Timeout value of the OracleAS Portal instances with which this provider is registered.

Problem 4

If HTTP authentication is required and the user name and password are missing or not valid, the following error message displays:

`Authorization failed when connecting to the URL specified. Provide correct user name and password to connect.`

Solution 4

To configure the Secured Data (Web Clipping) Repository Setting, click Edit on the OmniPortlet Provider Test Page. On the Source tab, click Edit Connection and enter a valid user name and password on the Connection Information page. To enter the connection information, the Secured Data Repository must be already be configured. To configure its settings, click Edit on the OmniPortlet Provider Test Page.

Problem 5

If opening a URL to an HTTPS site with a certificate and the certificate is identified as not valid, the following error message displays in the portlet:

`SSL handshake failed for HTTPS connection to the specified URL. The certificate file needs to be augmented`.

Solution 5

See the Oracle Application Server Portal Configuration Guide.

Problem 6

If the proxy server requires authentication and the user name and password are missing or not valid, the following error message displays:

`Invalid or missing user proxy login information.`

Solution 6

Check that your proxy server user name and password are valid. Refer to Section B.4.5, "HTTP Error Code 407 When Clipping Outside Firewall" for more information.

### B.3.2 Portlet Content Is Not Refreshed

After changing portlet properties in the Edit Defaults page, your portlet content is not refreshed.

Problem 1

OracleAS Web Cache invalidation is not configured properly.

Solution 1

See Section I.2.1.3 "Configuring Caching (PDK Only)" in the Oracle Application Server Portal Configuration Guide.

Problem 2

You have personalized the portlet.

Solution 2

See Section B.3.3, "Edit Defaults Changes are Not Reflected in the Personalized Portlet".

### B.3.3 Edit Defaults Changes are Not Reflected in the Personalized Portlet

When you personalize the portlet at runtime using the Personalize link, the new property values are not reflected in the personalized version of the portlet.

Problem

When you personalize the portlet, a complete copy of the personalization object file is created. Since all properties are duplicated, subsequent modifications through Edit Defaults are not reflected in the personalized version.

Solution

To ensure the latest changes are made to the portlet, click Personalize again (after the modifications via Edit Defaults), then select the Reset to Defaults option.

## B.4 Diagnosing Web Clipping Problems

This section provides information to help you troubleshoot problems you may encounter while using the Web Clipping provider or Web Clipping Studio:

- Setting Logging Levels

- Reviewing Error Messages

- Checking the Status of the Provider with the Test Page

- Problem Connecting to the Web Site for Clipping

- HTTP Error Code 407 When Clipping Outside Firewall

- Cannot Clip a Page

- Images Not Retrieved with Clipping

- Resolving Problems with Migration of URL-based Portlets

### B.4.1 Setting Logging Levels

By default, the logging level of Web Clipping is set to level 3, which provides information about configuration, severe errors, and warnings. This level is reasonable for day-to-day operations. To view information useful for debugging, you should set the logging level to 8.

To set the logging level, edit the `web.xml` file, which is located at:

    OracleHome/j2ee/OC4J_Portal/applications/portalTools/webClipping/WEB-INF

To set the level to 8 and display debugging information, set the value of the parameter `oracle.portal.log.LogLevel` as follows:

    <context-param>
            <param-name>oracle.portal.log.LogLevel</param-name>
            <param-value>8</param-value>
    </context-param>

After you make the change, restart the Web application.

### B.4.2 Reviewing Error Messages

Errors that occur when accessing the Test Page or executing of the Web Clipping portlet are written to one of the following files:

    OC4J_HOME/j2ee/home/application-deployments/portalTools/application.log
    IAS_HOME/j2ee/OC4J_instance/application-deployments/portalTools/OC4J_instance_default_island_1/application.log

### B.4.3 Checking the Status of the Provider with the Test Page

You can use the Web Clipping Provider Test Page to determine if the provider is functioning properly. To access the Test Page, click Web Clipping Provider from the Portal Tools Application Welcome Page, which is located at:

    http://host:port/portalTools

The Provider Test Page: Web Clipping is displayed. It provides the following information:

- Portlet information about the Web Clipping portlet. The Web Clipping provider contains only one portlet.

- Provider initialization parameters and values.

- Provider status, with links to pages for editing the configuration.

For more information about using the Test Page, see the "Administering Web Clipping" appendix in the Oracle Application Server Portal Configuration Guide.

### B.4.4 Problem Connecting to the Web Site for Clipping

You encounter difficulties making or maintaining connections to the Web site containing the clipping.

Problem 1

If you cannot access the Web site using Web Clipping Studio, you may be using an incorrect URL.

Solution 1

To be sure a URL is correct, test the URL that you want to clip in a browser before you attempt to clip it. Also test the URL to be sure that it is accessible from the provider middle tier.

Problem 2

The connection times out when attempting to browse to any Web site and your environment uses a proxy server to connect to HTTP servers outside a firewall.

Solution 2

Make sure that the proxy servers are configured correctly.

To configure the proxy servers, go to the Web Clipping Provider Test Page, as described in Section B.4.3, "Checking the Status of the Provider with the Test Page". In the Web Clipping Provider Test Page, click Edit in the Actions column of the HTTP Proxy row. In the Edit Provider page, specify the HTTP Proxy Host and the HTTP Proxy Port for the HTTP Proxy.

For access to servers inside the firewall, you can specify a list of domain names that need not go through the firewall by selecting No Proxy for Domains beginning with and entering the URL. You do not need to restart OC4J for the new settings to take effect.

For more information about configuring proxy servers, see the "Administering Web Clipping" appendix of the Oracle Application Server Portal Configuration Guide.

Problem 3

Your configuration includes a load balancer and you experience difficulty making or maintaining connections while attempting to add a clip to a Web Clipping portlet.

Solution 3

The configuration was not set up correctly:

- If multiple OC4J instances are set up behind a load balancer, the Web Clipping Repository and HTTP proxy must be configured identically on all OC4J instances before you join them to the load balancer.

  Web clippings have definitions that must be stored persistently in the Web Clipping Repository hosted by an Oracle Database server. In a multiple middle-tier environment, all instances of OC4J must store definitions in the same repository.

  In addition, all instances of OC4J must have identical HTTP proxy configurations.

- The Load Balancer must be session-enabled. If it is not, the first request connects, but subsequent requests, which may be routed to a different instance, fail.

For more information about configuring with a load balancer, see the "Performing Advanced Configuration" chapter of the Oracle Application Server Portal Configuration Guide.

Problem 4

You use a reverse proxy, but cannot make a connection.

Solution 4

Make sure that the reverse proxy server is configured correctly. See the "Performing Advanced Configuration" chapter of the Oracle Application Server Portal Configuration Guide for information about configuring a reverse proxy.

Problem 5

You cannot connect and the error log contains a message about denying logon to the database. (See Section B.4.1, "Setting Logging Levels" for information about the error log.)

Solution 5

The PORTAL schema password for the infrastructure database may have been modified manually and it may not match the password stored in Oracle Internet Directory. Refer to the Oracle Internet Directory Administrator's Guide for more information about setting the password.

### B.4.5 HTTP Error Code 407 When Clipping Outside Firewall

The proxy servers are configured for proxy authentication and you receive HTTP error code 407 when you attempt to clip a page outside the firewall.

Problem

The proxy servers are configured for proxy authentication, but you have not configured proxy authentication.

Solution

You must manually configure proxy authentication. Web Clipping supports both global proxy and per-user authentication. You can specify the realm of the proxy server and whether all users login automatically with a provided user name and password, each user logs in with an individual user name and password, or all users log in with a specified user name and password. For more information about configuring proxy authentication, see the "Administering Web Clipping" appendix of the Oracle Application Server Portal Configuration Guide.

### B.4.6 Cannot Clip a Page

You can connect to the Web site, but you cannot clip the page.

Problem

The page may be overpopulated with IFrames.

Solution

View the page in a browser and look at the page source. If it contains IFrames, start browsing in Web Clipping Studio using the URL pointed to by the IFrame `src` attribute.

### B.4.7 Images Not Retrieved with Clipping

Images in a Web clipping are not retrieved with the rest of the clipping.

Problem

Because images are treated as links (using the `src` attribute of the `IMG` tag), images from clipped sites are served directly from the original sites. If the images require that you enable proxy settings during creation of the clipping, then disabling the browser proxy setting disables the viewing of the images in a clipping.

Solution

Enable proxy settings in the browser.

### B.4.8 Resolving Problems with Migration of URL-based Portlets

You can migrate URL-based portlets that are stored in a `provider.xml` file to Web Clipping portlets. This section explains how to troubleshoot issues that arise as you migrate your portlets to Web Clipping portlets. For more information on the migration process itself, refer to Section 5.5, "Migrating from URL-Based Portlets".

#### B.4.8.1 File Not Found Exception When Running Migration Tool

When you run the migration tool, you receive the following exception:

    Exception in thread "main" java.io.FileNotFoundException:
     /wrongpath/somservice.properties (No such file or directory)
            at java.io.FileInputStream.open(Native Method)
            at java.io.FileInputStream.<init>(FileInputStream.java:103)
            at oracle.webdb.wcs.client.urlservices.UrlServicesMigrator.importService
                                                 (UrlServicesMigrator.java:631)
            at oracle.webdb.wcs.client.urlservices.UrlServicesMigrator.main
                                                 (UrlServicesMigrator.java:724)
            at oracle.webdb.wcs.WcWebdbMain.main(WcWebdbMain.java:60)

Problem

The files you specified for the deployment properties file for either the URL-based portlets service or the Web Clipping Portlet service do not exist.

Solution

Verify the path to both service deployment properties files in the argument list to see if they point to the correct location.

#### B.4.8.2 Null Pointer Exception When Running Migration Tool

When you run the migration tool, you receive the following exception:

    Exception in thread "main" java.lang.NullPointerException
            at java.util.Hashtable.put(Hashtable.java:375)
            at java.util.Properties.setProperty(Properties.java:97)
            at oracle.webdb.wcs.client.urlservices.UrlServicesMigrator.setRepository
                                                      (UrlServicesMigrator.java:415)
            at oracle.webdb.wcs.client.urlservices.UrlServicesMigrator.main
                                                      (UrlServicesMigrator.java:733)
            at oracle.webdb.wcs.WcWebdbMain.main(WcWebdbMain.java:58)

Problem

The Repository settings are not configured for the Web Clipping Provider.

Solution

See Section 5.5.1, "Preparing for Migration" for information about steps you must take before running the migration tool.

#### B.4.8.3 Target provider.xml is Already Migrated Error

When you run the migration tool, you receive the following error:

    Error: Target provider.xml is already migrated.

Problem

The `provider.xml` file pointed to by the URL-based portlets service deployment properties file has already been migrated. The provider definition class specified in the `provider.xml` file is already in WcProviderDefinition.

Solution

If you want to redo the migration, rename your service in both the deployment properties file and the entire directory name under WEB-INF/providers and then run the migration again.

#### B.4.8.4 Cannot Migrate provider.xml with Class Error

When you run the migration tool, you receive the following error:

    Error: Can't migrate provider.xml with class <someclass>

Problem

The `provider.xml` file pointed to by the URL-based portlets service deployment properties file contains a provider class name that does not match the one used by URL-based portlets. Specifically, the Provider class name specified in the file is not `oracle.portal.provider.v2.http.URLProviderDefinition`. The migration tool is intended to migrate URL-based Portlet provider definitions, not any other kind of provider definitions. Even those classes which sub-class from URL-based portlets provider definition will not be correctly migrated.

Solution

You cannot migrate this service.

## B.5 Need More Help?

You can find more solutions on Oracle MetaLink, `http://metalink.oracle.com`. If you do not find a solution for your problem, log a service request.

See Also: Oracle Application Server Release Notes, available on the Oracle Technology Network: `http://www.oracle.com/technology/documentation/ias.html`