Java Tomcat 8-Maven+;弹簧&x2B;Hibernate-oracle数据源出错

Java Tomcat 8-Maven+;弹簧&x2B;Hibernate-oracle数据源出错,java,tomcat,oracle11g,datasource,tomcat8,Java,Tomcat,Oracle11g,Datasource,Tomcat8,我有一个maven项目。我正在尝试用Oracle11g配置Tomcat8。我已经在tomcat/lib中插入了ojdbc6.jar。我已经在maven依赖项中插入了ojdbc6.jar 这是我的配置: context.xml <ResourceLink name="jdbc/ph" global="jdbc/ph" auth="Container" type="javax.sql.DataSource" /> 当我运行时,

我有一个maven项目。我正在尝试用Oracle11g配置Tomcat8。我已经在tomcat/lib中插入了ojdbc6.jar。我已经在maven依赖项中插入了ojdbc6.jar

这是我的配置:

context.xml

<ResourceLink name="jdbc/ph"
          global="jdbc/ph"
          auth="Container"
          type="javax.sql.DataSource" />
当我运行时,我总是获得以下错误:

Caused by: org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:95) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:90) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:112) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getConnectionForTransactionManagement(LogicalConnectionManagedImpl.java:230) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin(LogicalConnectionManagedImpl.java:237) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.begin(JdbcResourceLocalTransactionCoordinatorImpl.java:213) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:52) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1512) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_80]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_80]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_80]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_80]
at org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:338) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at com.sun.proxy.$Proxy65.beginTransaction(Unknown Source) ~[na:na]
at com.MySessionDao.getSession(PhSessionDao.java:33) ~[classes/:na]
... 40 common frames omitted
 Caused by: java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2160) ~[tomcat-dbcp.jar:8.0.30]
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2032) ~[tomcat-dbcp.jar:8.0.30]
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1532) ~[tomcat-dbcp.jar:8.0.30]
at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:386) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:87) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
... 53 common frames omitted
Caused by: java.lang.NullPointerException: null
at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:524) ~[na:1.7.0_80]
at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:493) ~[na:1.7.0_80]
at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307) ~[na:1.7.0_80]
at java.sql.DriverManager.getDriver(DriverManager.java:262) ~[na:1.7.0_80]
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2144) ~[tomcat-dbcp.jar:8.0.30]
... 58 common frames omitted

谢谢

它没有加载您的JDBC驱动程序或连接URL:

java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null'

oracle.jdbc.driver.OracleDriver

在hibernate.cfx.xml中,确保添加了ojdbc14.jar

切勿编辑或改写堆栈跟踪。发布整个堆栈跟踪。
   <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
   <property name="hibernate.show_sql">true</property>
   <property name="hibernate.connection.datasource">java:comp/env/jdbc/ph</property>
   <property name="current_session_context_class">thread</property>
   Configuration configuration = new Configuration().configure(HibernateUtil.class.getResource("/hibernate.cfg.xml"));
   StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder();
   serviceRegistryBuilder.applySettings(configuration.getProperties());
   ServiceRegistry serviceRegistry = serviceRegistryBuilder.build();
   sessionFactory = configuration.buildSessionFactory(serviceRegistry);
Caused by: org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:95) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:90) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:112) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getConnectionForTransactionManagement(LogicalConnectionManagedImpl.java:230) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin(LogicalConnectionManagedImpl.java:237) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.begin(JdbcResourceLocalTransactionCoordinatorImpl.java:213) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:52) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.internal.SessionImpl.beginTransaction(SessionImpl.java:1512) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_80]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_80]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_80]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_80]
at org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:338) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at com.sun.proxy.$Proxy65.beginTransaction(Unknown Source) ~[na:na]
at com.MySessionDao.getSession(PhSessionDao.java:33) ~[classes/:na]
... 40 common frames omitted
 Caused by: java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2160) ~[tomcat-dbcp.jar:8.0.30]
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2032) ~[tomcat-dbcp.jar:8.0.30]
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1532) ~[tomcat-dbcp.jar:8.0.30]
at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:386) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:87) ~[hibernate-core-5.0.5.Final.jar:5.0.5.Final]
... 53 common frames omitted
Caused by: java.lang.NullPointerException: null
at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:524) ~[na:1.7.0_80]
at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:493) ~[na:1.7.0_80]
at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307) ~[na:1.7.0_80]
at java.sql.DriverManager.getDriver(DriverManager.java:262) ~[na:1.7.0_80]
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2144) ~[tomcat-dbcp.jar:8.0.30]
... 58 common frames omitted
java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null'
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>