Avatar of ajfarroll
ajfarroll
 asked on

Could not initialize class javax.crypto.SunJCE_b

Hi all,

We have developed a Java servlet application to handle web service requests and responses.  It is built on Eclipse using Java 1.6.0.29 and Tomcat 7 all running on Windows.  It was developed on my PC then tested on a Test server and to be run Live on a Live server.  I have set up an SSL certificate on both the Test and Live servers as outlined on Tomcats online instructions and amended the Tomcat server.xml file to have the connector below;

<Connector SSLEnabled="true" acceptCount="100" clientAuth="false" disableUploadTimeout="true" enableLookups="false" maxThreads="150" port="8443" keystoreFile="C:\Keys\PortalLive.keystore" keystorePass="Key#P4rtal" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" secure="true" sslProtocol="TLS" />

The servlet deploys and functions fine on my PC and the Test server using a https://localhost:8443 URL with SoapUI but on the Live server no response is returned in SoapUI and the Tomcat logs error at the top is;

java.lang.NoClassDefFoundError: Could not initialize class javax.crypto.SunJCE_b

My investigation so far seems to suggest the issue is with the jce.jar, however I have tried the following with no success.  Please can someone help.

Ensured the jce.jar is in the jre\lib directory
Ensured the jre\lib is set up as JAVA_HOME environment variable
Ensured that JAVA_HOME is in the classpath environment variable
Tried swapping the location of jce.jar to Tomcats lib directory
Tried placing the jce.jar in the applications WEB-INF\lib directory and rebuilding and redeploying
Placing the location of the jce.jar in the applications Build Path and rebuilding and redeploying

I also attempted changing the “protocol” attribute of the server.xml connector from Http11NioProtocol to Http11Protocol but this gave the error below in the TOMCAT logs BEFORE Tomcat deployed the WAR;

Failed to initialize connector [Connector[HTTP/1.1-8443]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8443]]

Thank you so much in advance

ajfarroll
JavaWeb Languages and Standards

Avatar of undefined
Last Comment
ajfarroll

8/22/2022 - Mon
girionis

Can you make sure that you have *exactly* the same environment on both the test and production servers? There seems to be an incompatibility between these two.
ajfarroll

ASKER
Hi,

I apologise for not responding sooner but was on annual leave for a few days.  Thanks girionis for your feedback.  We were doing some further investigation ourselves and one problem may be that the development PC and the testing server are running on Windows 32 bit but the Live server is running 64 bit and one source suggests that this is a problem for Java.  Do you agree?

Thanks again

ajfarroll
ASKER CERTIFIED SOLUTION
girionis

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
ajfarroll

ASKER
Thanks again for your response girionis.  The infrastructure guys in my company have stripped out Java and Tomcat 64 bit installs and installed 32 bit ones now.  I will be able test this tomorrow and let you know how I get on.

Regards

AJFarroll
Experts Exchange is like having an extremely knowledgeable team sitting and waiting for your call. Couldn't do my job half as well as I do without it!
James Murphy
ajfarroll

ASKER
Thanks gerionis.  Changing the Java and Tomcat to 32 bit got us past that problem.  This is one remember.

Regards

AJFarroll