我在Java中处理SEVERE异常,如下所示:
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,我应该从第一个异常开始,还是应该在其他地方查找?
如果您需要更多信息,请告诉我。
感谢。
答案 0 :(得分:2)
你应该从根本原因(自下而上的方法到堆栈跟踪)开始,所以第一个要看,
嵌套异常是org.apache.commons.dbcp.SQLNestedException:不能 加载JDBC驱动程序类' org.postgresql.Driver'
它引起了,
嵌套异常是 org.springframework.jdbc.CannotGetJdbcConnectionException:不能 获取JDBC连接;
然后又导致了其他问题以及bean
创建失败。因此,您需要先检查postgresql
驱动程序。
另见What is a stack trace, and how can I use it to debug my application errors?
答案 1 :(得分:1)
日志中的最后一个是根本原因。你有postgres驱动程序的问题。
答案 2 :(得分:1)
从最后一个嵌套异常开始是一个好主意。这是首先抛出的例外。比阅读顶部的例外。
所以这会导致异常:
Cannot load JDBC driver class 'org.postgresql.Driver'
答案 3 :(得分:1)
你应该自下而上地读取堆栈跟踪,问题是你的JDBC驱动程序无法加载,很可能它不在类路径中。
答案 4 :(得分:1)
Java在堆栈中保持异常,这是堆栈底部出现异常的主要原因,因此从下到上读取异常。