Java 中的嵌套异常
Nested Exception in Java
我正在处理 Java 中的严重异常,如下所示:
SEVERE: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'birtReportRenderer': Injection of autowired dependencies failed;
nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void com.convergys.raspberry.server.filemgmt.FileWorker.setFileAuditTbl(com.convergys.raspberry.server.database.FileAuditTbl);
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'fileAuditTbl': Invocation of init method failed;
nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection;
nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.postgresql.Driver'
所有这些嵌套异常都是这样排列的:
exception; exception; exception; etc.
这里的事件顺序是什么?我应该查看最后一个嵌套异常并处理 JDBC,我应该从第一个异常开始还是查看其他地方?
如果您需要更多信息,请告诉我。
谢谢。
你应该从根本原因开始(堆栈跟踪的自下而上方法),所以第一个要看的,
nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot
load JDBC driver class 'org.postgresql.Driver'
它导致了,
nested exception is
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not
get JDBC Connection;
它又导致了其他的和 bean
创建失败。所以你需要先检查你的 postgresql
驱动程序。
另见 What is a stack trace, and how can I use it to debug my application errors?
日志中的最后一个是根本原因。您的 postgres 驱动程序有问题。
从最后一个嵌套异常开始是个好主意。这是首先抛出的异常。比阅读顶部的例外情况。
所以这会导致异常:
Cannot load JDBC driver class 'org.postgresql.Driver'
您应该自下而上地阅读堆栈跟踪,问题是您的 JDBC 驱动程序无法加载,很可能它不在类路径中。
Java 将其异常保存在堆栈中,导致异常的主要原因在堆栈底部,因此从下到上读取异常。
我正在处理 Java 中的严重异常,如下所示:
SEVERE: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'birtReportRenderer': Injection of autowired dependencies failed;
nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void com.convergys.raspberry.server.filemgmt.FileWorker.setFileAuditTbl(com.convergys.raspberry.server.database.FileAuditTbl);
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'fileAuditTbl': Invocation of init method failed;
nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection;
nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.postgresql.Driver'
所有这些嵌套异常都是这样排列的:
exception; exception; exception; etc.
这里的事件顺序是什么?我应该查看最后一个嵌套异常并处理 JDBC,我应该从第一个异常开始还是查看其他地方?
如果您需要更多信息,请告诉我。
谢谢。
你应该从根本原因开始(堆栈跟踪的自下而上方法),所以第一个要看的,
nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.postgresql.Driver'
它导致了,
nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection;
它又导致了其他的和 bean
创建失败。所以你需要先检查你的 postgresql
驱动程序。
另见 What is a stack trace, and how can I use it to debug my application errors?
日志中的最后一个是根本原因。您的 postgres 驱动程序有问题。
从最后一个嵌套异常开始是个好主意。这是首先抛出的异常。比阅读顶部的例外情况。
所以这会导致异常:
Cannot load JDBC driver class 'org.postgresql.Driver'
您应该自下而上地阅读堆栈跟踪,问题是您的 JDBC 驱动程序无法加载,很可能它不在类路径中。
Java 将其异常保存在堆栈中,导致异常的主要原因在堆栈底部,因此从下到上读取异常。