如何使Java 32位web应用程序在完全64位的机器上运行?

如何使Java 32位web应用程序在完全64位的机器上运行?,java,jakarta-ee,tomcat,web,64-bit,Java,Jakarta Ee,Tomcat,Web,64 Bit,我有一个web应用程序,由32位机器上的独立tomcat服务器运行,现在我决定将其移动到一个完全64位的环境机器上,所有内容都将是64位tomcat,java。。等等 我完成了所需文件的传输和部署。然后启动服务器,但我可以查看我的应用程序,它抛出错误:“Servlet someservlet抛出load()异常” 在将32位原始web应用程序传输到完全64位的机器上时,是否有必要的步骤 以下是堆栈跟踪: Nov 15, 2013 4:28:21 PM org.apache.catalina.co

我有一个web应用程序,由32位机器上的独立tomcat服务器运行,现在我决定将其移动到一个完全64位的环境机器上,所有内容都将是64位tomcat,java。。等等

我完成了所需文件的传输和部署。然后启动服务器,但我可以查看我的应用程序,它抛出错误:“Servlet someservlet抛出load()异常”

在将32位原始web应用程序传输到完全64位的机器上时,是否有必要的步骤

以下是堆栈跟踪:

Nov 15, 2013 4:28:21 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet MeritOrderLoader as unavailable
Nov 15, 2013 4:28:21 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet threw load() exception
java.lang.StackOverflowError
    at java.lang.Exception.<init>(Unknown Source)
    at java.lang.ReflectiveOperationException.<init>(Unknown Source)
    at java.lang.reflect.InvocationTargetException.<init>(Unknown Source)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
    at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
    at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:974)
    at org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:84)
    at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
    at trader.main.com.quantrisk.util.DatabaseConnectionFactory.getConnection(DatabaseConnectionFactory.java:38)
2013年11月15日下午4:28:21 org.apache.catalina.core.ApplicationContext日志
信息:将servlet MeritOrderLoader标记为不可用
2013年11月15日下午4:28:21 org.apache.catalina.core.StandardContext loadOnStartup
严重:Servlet引发load()异常
栈溢出
位于java.lang.Exception。(未知源)
位于java.lang.ReflectiveOperationException。(未知源)
位于java.lang.reflect.InvocationTargetException。(未知源)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于com.mysql.jdbc.Util.HandleneInstance(Util.java:406)
位于com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
位于com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
位于org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
位于org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
位于org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:974)
位于org.apache.commons.dbcp.AbundedObjectPool.borrowObject(AbundedObjectPool.java:84)
位于org.apache.commons.dbcp.poolgDataSource.getConnection(poolgDataSource.java:96)
位于org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
位于org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
位于org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
位于trader.main.com.quantrisk.util.DatabaseConnectionFactory.getConnection(DatabaseConnectionFactory.java:38)

除非您使用的是本机32位库,否则不需要对Java程序进行任何更改;这就是独立于平台的字节码方法背后的意图。最有可能的是,Tomcat安装中存在一些差异,可能是在类路径中。

问题已解决。由于应用程序的某些隐藏配置,应用程序进入了无限循环。谢谢您的帮助。

您可能应该仔细阅读异常堆栈跟踪。你知道,它实际上可能会告诉你出了什么问题。64位Tomcat是不存在的。Java是独立于平台的,只要您不使用一些确实是平台的时髦JNI库dependent@KalOP可能正在使用一个双击安装程序,该安装程序在一个包中包含Tomcat和JVM。您能发布完整的堆栈跟踪吗?@KeerthiRamanathan在帖子中添加了堆栈跟踪。你可以看看。我真的不知道为什么会这样。我现在很困惑。我如何判断我是否使用了本机32位库?我包括了很多jar文件。@AndrexLoyloy如果需要,查看jar中是否有
.so
.dll
文件。MySQL JDBC驱动程序没有;这几乎肯定是一个配置问题。我在哪里可以看到那些.so或.dll文件?@AndrexLoyloy…在jar文件中?你是说我应该检查我的jar文件?有这么多,你能展示一些快速可行的方法吗?