I am on a brand new laptop, so it only has stuff I have installed on it in the last week, so i am pretty certain it doesn’t have old stuff hanging around.
This is rather large as i have tried to include EVERYTHING.
my java home is pointing to a 64 bit java 8, but because of “stuff” (TM) we are having to run ancient tomcat and java 6 for for our client. I have installed: jdk1.6.0_45 and jdk1.8.0_151 (which is my java_home version)
as you can see above I am using tomcat 5.5.36. And I am making the presumption that as it only has x64 directories it is a 64 bit tomcat. The tcnative.dll in this directory is the one from x64 (the file contents when looked at in 7zip match)
Directory: C:Userswendy.gibbonstomcatapache-tomcat-5.5.36bin Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 20/10/2017 11:26 i64 d----- 20/10/2017 11:26 x64 -a---- 24/10/2017 10:46 6530 .catalina.bat.un~ -a---- 24/10/2017 10:47 1429 .startup.bat.un~ -a---- 20/10/2017 11:26 24384 bootstrap.jar -a---- 20/10/2017 11:26 1927 catalina-tasks.xml -a---- 24/10/2017 10:46 10102 catalina.bat -a---- 20/10/2017 11:49 10113 catalina.bat~ -a---- 20/10/2017 11:26 13131 catalina.sh -a---- 20/10/2017 11:26 202519 commons-daemon-native.tar.gz -a---- 20/10/2017 11:26 24242 commons-daemon.jar -a---- 20/10/2017 11:26 52313 commons-logging-api-1.1.1.jar -a---- 20/10/2017 11:26 1334 cpappend.bat -a---- 20/10/2017 11:26 2107 digest.bat -a---- 20/10/2017 11:26 1689 digest.sh -a---- 20/10/2017 11:26 2167 jmxaccessor-tasks.xml -a---- 20/10/2017 11:26 5088 service.bat -a---- 20/10/2017 11:26 3000 setclasspath.bat -a---- 20/10/2017 11:26 3577 setclasspath.sh -a---- 20/10/2017 11:26 2099 shutdown.bat -a---- 20/10/2017 11:26 1628 shutdown.sh -a---- 24/10/2017 10:47 2094 startup.bat -a---- 20/10/2017 13:29 2105 startup.bat~ -a---- 20/10/2017 11:26 2023 startup.sh -a---- 20/10/2017 11:26 1134080 tcnative-1.dll -a---- 20/10/2017 11:26 13519 tomcat-juli.jar -a---- 20/10/2017 11:26 261742 tomcat-native.tar.gz -a---- 20/10/2017 11:26 77312 tomcat5.exe -a---- 20/10/2017 11:26 103424 tomcat5w.exe -a---- 20/10/2017 11:26 3471 tool-wrapper.bat -a---- 20/10/2017 11:26 3508 tool-wrapper.sh -a---- 20/10/2017 11:26 2104 version.bat -a---- 20/10/2017 11:26 1632 version.sh
my catalina.bat file has
set CATALINA_HOME="C:Usersusertomcatapache-tomcat-5.5.36" set JAVA_HOME="C:Usersuserjdk1.6.0_45"
here is the full exception in case you haven’t seen it before
java.lang.UnsatisfiedLinkError: C:Usersusertomcatapache-tomcat-5.5.36bintcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1732) at java.lang.Runtime.loadLibrary0(Runtime.java:823) at java.lang.System.loadLibrary(System.java:1028) at org.apache.tomcat.jni.Library.<init>(Library.java:42) at org.apache.tomcat.jni.Library.initialize(Library.java:168) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.core.AprLifecycleListener.init(AprLifecycleListener.java:151) at org.apache.catalina.core.AprLifecycleListener.isAprAvailable(AprLifecycleListener.java:76) at org.apache.catalina.connector.Connector.setProtocol(Connector.java:638) at org.apache.catalina.connector.Connector.<init>(Connector.java:72) at org.apache.catalina.startup.ConnectorCreateRule.begin(ConnectorCreateRule.java:44) at org.apache.tomcat.util.digester.Rule.begin(Rule.java:153) at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1276) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501) at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:179) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1562) at org.apache.catalina.startup.Catalina.load(Catalina.java:490) at org.apache.catalina.startup.Catalina.load(Catalina.java:524) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:267) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432) 25-Oct-2017 16:56:56 org.apache.catalina.core.AprLifecycleListener init INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:Usersuserjdk1.6.0_45bin;C:WINDOWSSunJavabin;C:WINDOWSsystem32;C:WINDOWS;C:oraclexeapporacleproduct11.2.0serverbin;;C:oraclexeapporacleproduct11.2.0serverbin;C:ProgramDataOracleJavajavapath;C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:WINDOWSSystem32WindowsPowerShellv1.0;C:ProgramDatachocolateybin;C:Program FilesGitcmd;C:Program FilesTortoiseGitbin;C:Usersuserapache-maven-3.5.0-binapache-maven-3.5.0bin;;C:Program Files (x86)WinMerge;C:Program FilesPuTTY;C:UsersuserAppDataLocalMicrosoftWindowsApps;;.
I have searched my entire C drive and that dll is only in 3 places
Advertisement
Answer
The ZIP file for Tomcat 5.5.36 contains native libraries for IA32, IA64, and x86-64 architectures. The DLL file in Tomcat’s bin
directory is almost certainly the IA32 one.
You’ll want to rename tcnative-1.dll
to something like tcnative-1.dll.ia32
and then copy x64/tcnative-1.dll
into bin
in place of the one that was there previously.
Restart Tomcat and you should be up and running.
Tell the source of “stuff (TM)” that Tomcat 5.5 has long been EOL’d and both it and Java 6 likely have unpatched, publicly-known security vulnerabilities. Don’t be the next Equifax.