I'm using tomcat 8 and and deployed the ANT build war file to the tomcat which was previously deployed on Weblogic. I have sorted out most the things and deployment is success too on tomcat locally. However, when i'm trying to test the application thru Postman scripts, I'm having trouble getting the DB connections. The Error is as below:
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
Please help me to understand where the problem is. My configurations are as below:
web.xml:
<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.xml : under tomcat/webapp/manager
<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>
DAO Class:
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
I have placed below jars in tomcat/lib:
ojdbc14 , spring-jdbc-3.2.0.RELEASE , commons-dbcp2-2.1.1