Google Cloud:java.lang.ClassNotFoundException:com.mysql.jdbc.GoogleDriver

时间:2016-08-18 09:47:56

标签: mysql google-app-engine jdbc google-cloud-platform google-cloud-sql

我查看了所有类似的问题并遵循了他们的建议,但仍然得到了这个ClassNotFoundException。我正在使用Google Cloud上的应用引擎运行并尝试访问位于同一项目中的基于云的数据库实例。我的应用程序的WAR已部署在tomcat实例上。我可以到登录屏幕,所以我知道它在那里。只要我执行调用DAO类的任何操作,就会发生堆栈跟踪(请参阅下面的代码)。数据库已成功部署,可以从MySQL工作台访问。

这是我的appengine-web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <application>coop-140610</application>
    <version>0.9</version>
    <threadsafe>true</threadsafe>
    <use-google-connector-j>true</use-google-connector-j>
    <system-properties>
        <property name="ae-cloudsql.cloudsql-database-url"
            value="jdbc:google:mysql://coop-140610:asia-east1:coop/coop?user=root&amp;password=admin" />
        <property name="ae-cloudsql.local-database-url"
            value="jdbc:mysql://localhost/coop?user=root&amp;PASSWORD=admin&amp;useSSL=false" />
    </system-properties>
</appengine-web-app>

在我的DAO课程中,我正在运行此代码:

   try {
            Class.forName("com.mysql.jdbc.GoogleDriver");
            String url = "jdbc:google:mysql://coop-140610:asia-east1:coop?user=root";

            myConn = DriverManager.getConnection(url);

            String sql = "select * from coop.user order by username";

            myStmt = myConn.createStatement();
            myRs = myStmt.executeQuery(sql);

在我的项目中,我有jdbc连接器库mysql-connector-java-5.1.36-bin.jar

我的智慧结束了。我检查了几十次并重新检查了所有内容。如果有人能发现我的错误,我将非常感激。谢谢。

这里有一条可能的线索...如果我在我的一个bean getter中运行此代码:

  if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) {
            env = "Production";
        } else {
            env = "Development";
        }
  return env;

它返回&#39;发展&#39;。这是否意味着我的应用程序未正确部署?我通过tomcat管理器上传WAR来部署它。

0 个答案:

没有答案