我正在使用tomcat 8,并将ANT build war文件部署到先前已部署在Weblogic上的tomcat。我已经整理了大多数东西,并且在本地的Tomcat上部署也很成功。但是,当我尝试通过Postman脚本测试应用程序时,我在获取数据库连接时遇到了麻烦。错误如下:
Could not get JDBC Connection; nested exception is java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null'
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:573)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:637)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:662)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.query(NamedParameterJdbcTemplate.java:142)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.query(NamedParameterJdbcTemplate.java:148)
//Later part of the error logs:
--------------------------------
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:2224)
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2104)
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1563)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
... 53 more
Caused by: java.lang.NullPointerException
at oracle.jdbc.driver.OracleDriver.acceptsURL(OracleDriver.java:981)
at java.sql.DriverManager.getDriver(DriverManager.java:299)
at org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2209)
... 57 more
请帮助我了解问题所在。我的配置如下:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/MatchDS_DEV</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Resource name="jdbc/DEV" auth="Container" type="javax.sql.DataSource"
maxTotal="100" maxIdle="30" maxWaitMillis="10000"
username="USER"
password="Admin_1"
driverClassName="oracle.jdbc.xa.client.OracleXADataSource"
url="jdbc:oracle:thin:@//mcpsecv01-***/MCPRM01V"/>
</Context>
import javax.sql.DataSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
Class XX{
DataSource dataSource;
private NamedParameterJdbcTemplate jdbcTemplate;
public void setDataSource(DataSource dataSource)
{
jdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
}
//more source code
//within a method, m calling this jdbcTemplate like this:
Object value = jdbcTemplate.query(params); // this is where it throws error.
//more source code
}//End of class X
ojdbc14,spring-jdbc-3.2.0.RELEASE,commons-dbcp2-2.1.1