JRE issues using SSL in standalone java client

Hi everyone,

I’m in the process of building a standalone java client that is going to invoke services on IS 4.0.2 using the client.jar. I want to use SSL but I cannot get this to work using JRE 1.4.1. It’s working fine using JRE 1.3.1 though.

Is there a compatibility issue between the client.jar supplied with IS 4.0.2 and JRE 1.4.1? Does anyone have this working?

I receive a runtime error at the point that it’s initializing the SSL truststore (see below).

Thanks a lot.

Rob Brouwers

java.lang.ExceptionInInitializerError

at javax.crypto.Cipher.a(DashoA6275)

at javax.crypto.Cipher.getInstance(DashoA6275)

at iaik.security.ssl.IaikProvider.getCipher(Unknown Source)

at iaik.security.ssl.SecurityProvider.isImplemented(Unknown Source)

at iaik.security.ssl.SecurityProvider.a(Unknown Source)

at iaik.security.ssl.CipherSuite.isAvailable(Unknown Source)

at iaik.security.ssl.CipherSuiteList.ensureAvailable(Unknown Source)

at iaik.security.ssl.CipherSuiteList.(Unknown Source)

at iaik.security.ssl.SSLContext.(Unknown Source)

at iaik.security.ssl.SSLClientContext.(Unknown Source)

at iaik.security.ssl.SSLClientContext.(Unknown Source)

at com.wm.ext.iaik.IaikSecureSocket.setup(IaikSecureSocket.java:222)

at com.wm.net.NetURLConnection.httpsConnect(NetURLConnection.java:597)

at com.wm.net.NetURLConnection.connect(NetURLConnection.java:164)

at com.wm.net.HttpURLConnection.getOutputStream(HttpURLConnection.java:419)

at com.wm.net.HttpURLConnection.getOutputStream(HttpURLConnection.java:401)

at com.wm.app.b2b.client.TContext.invokeJob(TContext.java:1167)

at com.wm.app.b2b.client.TContext.invokeJob(TContext.java:1123)

at com.wm.app.b2b.client.TContext.setClusterServers(TContext.java:1511)

at com.wm.app.b2b.client.TContext.connect(TContext.java:613)

at treasuryclient.isclient.RemoteServer.invokeTXService(RemoteServer.java:162)

at treasuryclient.scheduler.TaskMT940.run(TaskMT940.java:283)

at java.util.TimerThread.mainLoop(Timer.java:432)

at java.util.TimerThread.run(Timer.java:382)

Caused by: java.lang.SecurityException: Cannot set up certs for trusted CAs

at javax.crypto.SunJCE_b.(DashoA6275)

… 24 more

Caused by: java.lang.UnsupportedOperationException

at java.security.cert.CertificateFactorySpi.engineGenerateCertPath(CertificateFactorySpi.java:155)

at java.security.cert.CertificateFactory.generateCertPath(CertificateFactory.java:470)

at javax.crypto.SunJCE_d.a(DashoA6275)

at javax.crypto.SunJCE_d.a(DashoA6275)

at javax.crypto.SunJCE_b.i(DashoA6275)

at javax.crypto.SunJCE_b.h(DashoA6275)

at javax.crypto.SunJCE_v.run(DashoA6275)

at java.security.AccessController.doPrivileged(Native Method)

JDK 1.4 contains a newer version of the JCE that requires signed provider jars. The crypto provider included with the client.jar does not contain signed jars.