【发布时间】:2015-10-12 12:36:31
【问题描述】:
所以我遇到了一种奇怪的情况。我有 Spring webapp,其中有我在 tomcat 的 server.xml 中定义的 JNDI 数据源以连接到 mysql 数据库 我的 Maven pom 中有 mysql-connector-java 5.1.2。
当我从 localhost 启动应用程序时,它可以工作,但是当我将它部署到远程 tomcat 时,它没有得到对数据库的调用。
发生此异常:
Couldnt execute sql CALL shareholders_company_list(?)
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Unable to create correct SQLException class instance, error class/codes may be incorrect. Reason:
** BEGIN NESTED EXCEPTION **
java.sql.SQLException
MESSAGE: Can't instantiate required class due to java.lang.ClassNotFoundException: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException
STACKTRACE:
java.sql.SQLException: Can't instantiate required class due to java.lang.ClassNotFoundException: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException
有没有办法避免这个 ClassNotFoundException,这样我就可以获得完整的堆栈跟踪,因为似乎发生这种情况的显式错误是在 MySQLNonTransientConnectionException 中,我似乎无法达到它。
【问题讨论】:
-
检查依赖的范围,它是否与您正在创建的战争捆绑在一起?
-
@Bilbo Baggins 范围未定义,所以我猜
作为默认值 -
检查它是否包含在战争中?应该是:)
-
@Bilbo Baggins 是的,它在 WEB-INF/lib 中