Getting the Portlet could not be Contacted Error in an SSL Portal Environment

(Doc ID 352522.1)

Last updated on MARCH 08, 2017

Applies to:

Portal - Version 10.1.2.0.0 to 10.1.4.2 [Release 10gR2]
Information in this document applies to any platform.
Checked For Relevance: 16-FEB-2015


Symptoms

There is a Portal configured with a load balancer in front of two middle tiers. One side of the load-balanced portal is returning the following error:

Error: The portlet could not be contacted.

At the same time the following error is raised in the <midtier_home>\j2ee\OC4J_Portal\application-deployments\portal\OC4J_Portal_default_island_1\application.log:

06/01/10 15:23:49 portal: id=129105200572,1 ContentFetcher Unexpected Exception Request
Failed:oracle.webdb.dispatcher.DispatcherException: I/O Error dispatching request
name=content-fetcher2 label=pageMeta
url=https://<servername>:<port>/pls/portal/!PORTAL.wwpob_page.show?_pageid=6,1,6_13
time=19ms timeout=60000ms process=Dispatching
06/01/10 15:28:49 portal: id=124810540745,1 Content Fetcher Caught:
oracle.webdb.utils.PortalExceptionImpl: I/O Error dispatching request
at oracle.portal.PortalException.<init>(Unknown Source)
at oracle.webdb.dispatcher.DispatcherException.<init>(Unknown Source)
at oracle.webdb.dispatcher.HTTPDispatcher.dispatch(Unknown Source)
at oracle.webdb.dispatcher.CacheDispatcher.dispatch(Unknown Source)
at oracle.webdb.page.ContentFetcher.run(Unknown Source)
Caused by: java.io.IOException: javax.net.ssl.SSLException: SSL handshake failed:
X509CertChainIncompleteErr
at oracle.security.ssl.OracleSSLSocketImpl.startHandshake(Unknown Source)
at HTTPClient.OracleSSL.getSSLSocket(OracleSSL.java:255)
at HTTPClient.OracleSSL.getSSLSocket(OracleSSL.java:263)
at HTTPClient.HTTPConnection.getSSLSocket(HTTPConnection.java:4220)
at HTTPClient.HTTPConnection.doConnect(HTTPConnection.java:4038)
at HTTPClient.HTTPConnection.sendRequest(HTTPConnection.java:3003)
at HTTPClient.HTTPConnection.handleRequest(HTTPConnection.java:2843)
at HTTPClient.HTTPConnection.setupRequest(HTTPConnection.java:2635)
at HTTPClient.HTTPConnection.Post(HTTPConnection.java:1107)
at HTTPClient.HTTPConnection.Post(HTTPConnection.java:1072)
... 3 more
caused by: java.io.IOException: javax.net.ssl.SSLException: SSL handshake failed:
X509CertChainIncompleteErr
at oracle.security.ssl.OracleSSLSocketImpl.startHandshake(Unknown Source)
at HTTPClient.OracleSSL.getSSLSocket(OracleSSL.java:255)
at HTTPClient.OracleSSL.getSSLSocket(OracleSSL.java:263)
at HTTPClient.HTTPConnection.getSSLSocket(HTTPConnection.java:4220)
at HTTPClient.HTTPConnection.doConnect(HTTPConnection.java:4038)
at HTTPClient.HTTPConnection.sendRequest(HTTPConnection.java:3003)
at HTTPClient.HTTPConnection.handleRequest(HTTPConnection.java:2843)
at HTTPClient.HTTPConnection.setupRequest(HTTPConnection.java:2635)
at HTTPClient.HTTPConnection.Post(HTTPConnection.java:1107)
at HTTPClient.HTTPConnection.Post(HTTPConnection.java:1072)
at oracle.webdb.dispatcher.HTTPDispatcher.dispatch(Unknown Source)
at oracle.webdb.dispatcher.CacheDispatcher.dispatch(Unknown Source)
at oracle.webdb.page.ContentFetcher.run(Unknown Source)


Also, the Parallel Page Engine throws the following exception in the <midtier_home>\j2ee\OC4J_Portal\application-deployments\portal\OC4J_Portal_default_island_1\application.log when starting it up:

06/01/10 14:10:44 portal: Reading trusted certificates file '/etc/certificate' : Failed
java.security.cert.CertificateException: Could not parse certificate: java.io.IOException:
DerInputStream.getLength(): lengthTag=127, too big.
at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:109)
at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:389)
at oracle.webdb.pool.http.SSLConfig.readCertificates(Unknown Source)
at oracle.webdb.pool.http.SSLConfig.<init>(Unknown Source)
at oracle.webdb.page.ParallelServlet.init(Unknown Source)
at com.evermind.server.http.HttpApplication.loadServlet(HttpApplication.java:2141)
at com.evermind.server.http.HttpApplication.findServlet(HttpApplication.java:4582)
at com.evermind.server.http.HttpApplication.getRequestDispatcher(HttpApplication.java:2608)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:640)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:208)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:125)
at

com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.ja
a:192)
at java.lang.Thread.run(Thread.java:534)
Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=127, too big.
at sun.security.util.DerInputStream.getLength(DerInputStream.java:530)
at sun.security.util.DerValue.init(DerValue.java:346)
at sun.security.util.DerValue.<init>(DerValue.java:302)
at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:104)
... 12 more


The other side of the load-balanced Portal is working fine.

The Portal is set up for SSL with the Parallel Page Engine secured too. There is a list of accepted certificates defined with the following parameter in the Portal's web.xml (<midtier_home>/j2ee/OC4J_Portal/applications/portal/portal/WEB-INF/web.xml):

<init-param>
    <param-name>x509certfile</param-name>
    <param-value>/etc/certificate</param-value>
</init-param>


For more information on this parameter, review the documentation at:

Securing the Parallel Page Engine of Oracle® Application Server Portal Configuration Guide
10g Release 2 (10.1.4)
B19305-03

Changes

 

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms