Maven GAE Plugin + Google Cloud SQL错误 [英] Error with Maven GAE Plugin + Google Cloud SQL

查看:157
本文介绍了Maven GAE Plugin + Google Cloud SQL错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的插件配置:

 < plugin> 
< groupId> net.kindleit< / groupId>
< artifactId> maven-gae-plugin< / artifactId>
< version> 0.7.3< / version>
<依赖关系>
< dependency>
< groupId> net.kindleit< / groupId>
< artifactId> gae-runtime< / artifactId>
< version> $ {gae.version}< / version>
< type> pom< / type>
< /依赖关系>
< /依赖关系>
<配置>
< jvmFlags>
< jvmFlag> -Drdbms.server = local< / jvmFlag>
< jvmFlag> -Drdbms.driver = com.mysql.jdbc.Driver< / jvmFlag>
< jvmFlag> -Drdbms.url = jdbc:mysql:// localhost:3306 / prova?user = root& amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; pass =< / jvmFlag>
< / jvmFlags>
< serverId> appengine.google.com< / serverId>
< / configuration>
< / plugin>

您可以在这里阅读更多信息: https://developers.google.com/cloud-sql/docs/developers_guide_java



首先,我得到了这个微不足道的错误: mvn gae:run

  java .lang.ClassNotFoundException:com.mysql.jdbc.Driver 

因此,我添加了真正的驱动程序我的pom.xml:

 <依赖关系> 
< groupId> mysql< / groupId>
< artifactId> mysql-connector-java< / artifactId>
< version> 5.1.18< / version>
< /依赖关系>

没有结果。

部分堆栈跟踪:

  java.lang.ClassNotFoundException:com.mysql.jdbc.Driver $ b $ java.net.URLClassLoader $ 1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)$在java.net.URLClassLoader.findClass(URLClassLoader.java:190)处为b $ b;在java.lang.ClassLoader.loadClass处为
(ClassLoader.java:306);在com.google.appengine.tools处为
。开发.DevAppServerClassLoader.loadClass(DevAppServerClassLoader.java:87)$ b $在java.lang.ClassLoader.loadClass(ClassLoader.java:247)
在java.lang.Class.forName0(本地方法)
在java.lang.Class.forName(Class.java:169)
在com.google.appengine.api.rdbms.dev.LocalRdbmsServiceLocalDriver.registerDriver(LocalRdbmsServiceLocalDriver.java:84)
at com。 google.appengine.api.rdbms.dev.LocalRdbmsServiceLocalDriver.init(LocalRdbmsServiceLocalDriver.java:73)
,com.google.appengine.api .rdbms.dev.LocalRdbmsService.init(LocalRdbmsService.java:85)

编辑:



我的新插件conf:

 < plugin> ; 
< groupId> net.kindleit< / groupId>
< artifactId> maven-gae-plugin< / artifactId>
< version> 0.9.2< / version>
<依赖关系>
< dependency>
< groupId> net.kindleit< / groupId>
< artifactId> gae-runtime< / artifactId>
< version> $ {gae.version}< / version>
< type> pom< / type>
< /依赖关系>
< dependency>
< groupId> mysql< / groupId>
< artifactId> mysql-connector-java< / artifactId>
< version> 5.1.18< / version>
< /依赖关系>
< /依赖关系>
<配置>
< jvmFlags>
< jvmFlag> -Drdbms.server =本地< / jvmFlag>
< jvmFlag> -Drdbms.driver = com.mysql.jdbc.Driver< / jvmFlag>
< jvmFlag> -Drdbms.url = jdbc:mysql:// localhost:3306 / prova?user = root& amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; pass =< / jvmFlag>
< / jvmFlags>
< serverId> appengine.google.com< / serverId>
<! - < sdkDir> $ {appengine.sdk.root}< / sdkDir> - >
<! - < appDir> $ {basedir} / war< / appDir> - >
< / configuration>
< / plugin>


解决方案

好的,我解决了。我手动在我的sdk文件夹中放入 mysql-connector-java-5.1.18-bin.jar

  file:///opt/appengine-java-sdk-1.6.0/lib/impl/ 

更好的错误更改:

  java.sql.SQLException:拒绝用户' root'@'localhost'(使用密码:YES)

然而,感谢您的建议


Here's my plugin configuration:

<plugin>
                <groupId>net.kindleit</groupId>
                <artifactId>maven-gae-plugin</artifactId>
                <version>0.7.3</version>
                <dependencies>
                  <dependency>
                    <groupId>net.kindleit</groupId>
                    <artifactId>gae-runtime</artifactId>
                    <version>${gae.version}</version>
                    <type>pom</type>
                  </dependency>
                </dependencies>
                <configuration>
                    <jvmFlags>
                        <jvmFlag>-Drdbms.server=local</jvmFlag>
                        <jvmFlag>-Drdbms.driver=com.mysql.jdbc.Driver</jvmFlag>
                        <jvmFlag>-Drdbms.url=jdbc:mysql://localhost:3306/prova?user=root&amp;password=pass</jvmFlag>
                    </jvmFlags>
                    <serverId>appengine.google.com</serverId>
                </configuration>
            </plugin>

You can read more here: https://developers.google.com/cloud-sql/docs/developers_guide_java

First I had this trivial error, doing mvn gae:run

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

So I added the "real" driver to my pom.xml:

<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.18</version>
    </dependency>

with no results. The error remains the same.

Part of the stacktrace:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at com.google.appengine.tools.development.DevAppServerClassLoader.loadClass(DevAppServerClassLoader.java:87)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at com.google.appengine.api.rdbms.dev.LocalRdbmsServiceLocalDriver.registerDriver(LocalRdbmsServiceLocalDriver.java:84)
    at com.google.appengine.api.rdbms.dev.LocalRdbmsServiceLocalDriver.init(LocalRdbmsServiceLocalDriver.java:73)
    at com.google.appengine.api.rdbms.dev.LocalRdbmsService.init(LocalRdbmsService.java:85)

edit:

My new plugin conf:

<plugin>
                <groupId>net.kindleit</groupId>
                <artifactId>maven-gae-plugin</artifactId>
                <version>0.9.2</version>
                <dependencies>
                  <dependency>
                    <groupId>net.kindleit</groupId>
                    <artifactId>gae-runtime</artifactId>
                    <version>${gae.version}</version>
                    <type>pom</type>
                  </dependency>
                  <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>5.1.18</version>
                </dependency>
                </dependencies>
                <configuration>
                    <jvmFlags>
                        <jvmFlag>-Drdbms.server=local</jvmFlag>
                        <jvmFlag>-Drdbms.driver=com.mysql.jdbc.Driver</jvmFlag>
                        <jvmFlag>-Drdbms.url=jdbc:mysql://localhost:3306/prova?user=root&amp;password=pass</jvmFlag>
                    </jvmFlags>
                    <serverId>appengine.google.com</serverId>
<!--                     <sdkDir>${appengine.sdk.root}</sdkDir> -->
<!--                     <appDir>${basedir}/war</appDir> -->
                </configuration>
            </plugin>

解决方案

Ok I solved. I manually put mysql-connector-java-5.1.18-bin.jar in my sdk folder:

 file:///opt/appengine-java-sdk-1.6.0/lib/impl/

Error changes in a more comfortable:

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

Thank you for suggestions however

这篇关于Maven GAE Plugin + Google Cloud SQL错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆