Maven GAE Plugin + Google Cloud SQL错误 [英] Error with 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&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&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屋!