The infamous java.sql.SQLException: No suitable driver found

前端 未结 16 1921
广开言路
广开言路 2020-11-21 05:10

I\'m trying to add a database-enabled JSP to an existing Tomcat 5.5 application (GeoServer 2.0.0, if that helps).

The app itself talks to Postgres just fine, so I kn

16条回答
  •  深忆病人
    2020-11-21 05:19

    I had this exact issue when developing a Spring Boot application in STS, but ultimately deploying the packaged war to WebSphere(v.9). Based on previous answers my situation was unique. ojdbc8.jar was in my WEB-INF/lib folder with Parent Last class loading set, but always it says it failed to find the suitable driver.

    My ultimate issue was that I was using the incorrect DataSource class because I was just following along with online tutorials/examples. Found the hint thanks to David Dai comment on his own question here: Spring JDBC Could not load JDBC driver class [oracle.jdbc.driver.OracleDriver]

    Also later found spring guru example with Oracle specific driver: https://springframework.guru/configuring-spring-boot-for-oracle/

    Example that throws error using org.springframework.jdbc.datasource.DriverManagerDataSource based on generic examples.

    @Config
    @EnableTransactionManagement
    public class appDataConfig {
     \* Other Bean Defs *\
        @Bean
        public DataSource dataSource() {
            // configure and return the necessary JDBC DataSource
            DriverManagerDataSource dataSource = new DriverManagerDataSource("jdbc:oracle:thin:@//HOST:PORT/SID", "user", "password");
            dataSource.setSchema("MY_SCHEMA");
            return dataSource;
        }
    }
    

    And the corrected exapmle using a oracle.jdbc.pool.OracleDataSource:

    @Config
    @EnableTransactionManagement
    public class appDataConfig {
    /* Other Bean Defs */
    @Bean
        public DataSource dataSource() {
            // configure and return the necessary JDBC DataSource
            OracleDataSource datasource = null;
            try {
                datasource = new OracleDataSource();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
            datasource.setURL("jdbc:oracle:thin:@//HOST:PORT/SID");
            datasource.setUser("user");
            datasource.setPassword("password");
    
            return datasource;
        }
    }
    

提交回复
热议问题