views:

238

answers:

0

I'm trying to authenticate to Google Apps using the GData client library. I've imported the needed jars and dependencies from the library into my Eclipse environment and verified that test code that calls the service works when run (a) as a POJO and (b) as a standard Eclipse plugin. When running in the Expeditor runtime (j9vm - Lotus Symphony 1.3) I get an error when I hit the line com.google.gdata.client.docs.DocService.setUserCredentials The error seems to come from an internal call in javax.net.ssl.SSLContext. The error thrown is WARNING: CWPST502W: The algorithm for recovering the key from the keystore cannot be found. Relevant Stacktrace follows post.

The question is, what is the nature of this issue? If I am to understand that the JCE provider in Expeditor doesn't have the proper algorithm how do I go about determining which provider would have the proper algorithm? (i.e. how do I determine the algorithm?) More importantly, how would I override the provider in Expeditor with one of my choosing? Am I even on the right path here?

The only remotely relevant documentation I could find from Lotus was this: J9 JSSE and Provider Details.

Oh, thanx in advance. -Jake

---BEGIN STACKTRACE---
WARNING: CWPST502W:  The algorithm for recovering the key from the keystore cannot be found.
Throwable occurred: java.security.NoSuchAlgorithmException: K00b3
    at javax.net.ssl.SSLContext.getInstance(SSLContext.java:57)
    at com.ibm.rcp.security.ssl.PlatformSSLProtocolSocketFactory.createPlatformSSLContext(PlatformSSLProtocolSocketFactory.java:47)
    at com.ibm.rcp.security.ssl.PlatformSSLProtocolSocketFactory.getSSLContext(PlatformSSLProtocolSocketFactory.java:69)
    at com.ibm.rcp.security.ssl.PlatformSSLProtocolSocketFactory.createSocket(PlatformSSLProtocolSocketFactory.java:96)
    at org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory$1.doit(ControllerThreadSocketFactory.java:90)
    at org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory$SocketTask.run(ControllerThreadSocketFactory.java:157)
    at java.lang.Thread.run(Thread.java:816)
Exception in thread "Timeout guard" java.lang.NullPointerException
    at com.ibm.rcp.security.ssl.PlatformSSLProtocolSocketFactory.createSocket(PlatformSSLProtocolSocketFactory.java:96)
    at org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory$1.doit(ControllerThreadSocketFactory.java:90)
    at org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory$SocketTask.run(ControllerThreadSocketFactory.java:157)
    at java.lang.Thread.run(Thread.java:816)
java.lang.NullPointerException
    at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:720)
    at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1321)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:401)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
    at com.ibm.rcp.net.protocol.http.HttpURLConnection.execute(HttpURLConnection.java:254)
    at com.ibm.rcp.net.protocol.http.HttpURLConnection.getResponseCode(HttpURLConnection.java:702)
    at com.ibm.rcp.net.protocol.http.HttpsURLConnection.getResponseCode(HttpsURLConnection.java:134)
    at com.google.gdata.client.GoogleAuthTokenFactory.makePostRequest(GoogleAuthTokenFactory.java:550)
    at com.google.gdata.client.GoogleAuthTokenFactory.getAuthToken(GoogleAuthTokenFactory.java:477)
    at com.google.gdata.client.GoogleAuthTokenFactory.setUserCredentials(GoogleAuthTokenFactory.java:336)
    at com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java:362)
    at com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java:317)
---END STACKTRACE---