Ошибка при получении соединений из шаблона JDBC - PullRequest
0 голосов
/ 06 февраля 2019

Я использую tomcat 8 и развернул файл войны сборки ANT на tomcat, который ранее был развернут в Weblogic.Я разобрался с большинством вещей, и развертывание также успешно на 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

Пожалуйста, помогите мне понять, где проблема.Мои конфигурации следующие:

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: под 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:

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

Я поместил ниже jar в tomcat / lib:

ojdbc14, spring-jdbc-3.2.0.RELEASE, commons-dbcp2-2.1.1

...