Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2178
  • Last Modified:

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
0
ajfarroll
Asked:
ajfarroll
  • 3
  • 2
1 Solution
 
girionisCommented:
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.
0
 
ajfarrollAuthor Commented:
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
0
 
girionisCommented:
Yes, it's more than likely that the issue is caused because of this incompatibility.
0
 
ajfarrollAuthor Commented:
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
0
 
ajfarrollAuthor Commented:
Thanks gerionis.  Changing the Java and Tomcat to 32 bit got us past that problem.  This is one remember.

Regards

AJFarroll
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now