Google App Engine for Spring Boot应用程序始终提供java.lang.ClassNotFoundException:com.mysql.jdbc.GoogleDriver

时间:2016-09-15 11:32:20

标签: google-app-engine spring-boot google-cloud-sql

我有一个Maven的Sprint Boot应用程序。我为我的应用程序启用了MySQL Connector / J(true)。但是在我的应用程序部署到Google Cloud之后,我总是得到"无法加载JDBC驱动程序类&com; mysql.jdbc.GoogleDriver'" (java.lang.ClassNotFoundException:com.mysql.jdbc.GoogleDriver)。请尽早查询并提供建议。我获取连接的代码如下所示。

BasicDataSource ds = new BasicDataSource();

        System.out.println("Inside prod-->");
        try {
            Class.forName("com.mysql.jdbc.GoogleDriver");
            System.out.println("Inside Class.forName-->");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("Inside ClassNotFoundException-->");
        }
        System.out.println("after Class.forName-->");
        ds.setDriverClassName(props.getProperty("gcdriverClassName"));
        ds.setUrl(props.getProperty("gcurl"));//System.getProperty("ae-cloudsql.cloudsql-database-url")
        ds.setUsername(props.getProperty("gcusername"));
        ds.setPassword(props.getProperty("gcpassword"));
        ds.setInitialSize(Integer.parseInt(props.getProperty("gcinit_pool_size")));
        ds.setMaxActive(Integer.parseInt(props.getProperty("gcmax_pool_size")));

1 个答案:

答案 0 :(得分:0)

AFAIK,com.mysql.jdbc.GoogleDriver类在App Engine运行时中不会自动提供。因此,您必须通过将<use-google-connector-j>true</use-google-connector-j>元素添加到appengine-web.xml目录中的PROJECT_HOME/src/main/webapp/WEB-INF/来启用它。

请参阅“Using Google Cloud SQL”文档更多详细信息。