接手一个 Java 旧项目,原来是使用 Oracle 11g 数据库,现在换成 Oracle 12c 就跑不起来,提示错误如下:
严重: Exception sending context initialized event to listener instance of class app.support.listener.TaskStartListener
org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is
org.hibernate.exception.GenericJDBCException: Cannot open connection
解决方法:
1.把代码WEB-INF\lib目录下的ojdbc14.jar删除,把ojdbc6-11.2.0.1.0.jar放进来,刷新即可。
2.修改jdbc的url写法
原来的写法:
jdbc.url=jdbc:oracle:thin:@192.168.0.1:1521:mydatabase
database.dialect=org.hibernate.dialect.Oracle10gDialect
改后的写法:
jdbc.url=jdbc:oracle:thin:@192.168.0.1:1521/mydatabase
database.dialect=org.hibernate.dialect.OracleDialect
备注:ojdbc14.jar是早期11g的包,11g之后,命名为ojdbc6、ojdbc7...。