2

ここに私のプラグインの設定があります:エラー

<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> 

あなたがここで詳細を読むことができます:https://developers.google.com/cloud-sql/docs/developers_guide_java

まず私はmvn gae:run

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
をやって、この些細なエラーが発生しました

私はpom.xmlに "本当の"ドライバを追加しました:

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

結果はありません。エラーは同じままです。スタックトレースの

パート:

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) 

編集:

私の新しいプラグインの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> 
+1

1)場合は、確認しましたmysql connector jarがあなたの戦争のweb-inf/libに追加されましたか? 2)最新バージョンのmaven-gae-pluginは0.9.2です。アップグレードをお試しください。 3)依存関係の範囲を "テスト"として設定しようとしましたか? –

+0

1)はい、mavenは対象のフォルダ構造に正しくコピーします –

+0

2)私は試してみます –

答えて

4

私は解決しました。より快適で

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

エラー変更:私は手動で私のSDKフォルダにmysql-connector-java-5.1.18-bin.jarを入れ

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

しかし提案いただきありがとうございます

+0

ライフセーバー!これはどこに文書化されていますか? – IrishDubGuy

1

あなたにもプラグイン依存関係にこれを追加しましたか?

プラグインのクラスパスであれば、GAEで取得する必要があります。

+0

あなたは私がそれをどうやってできるのかをもっとよく説明できますか? –

+0

投稿を編集しました。それを見て –

2

それとも、それを行うのmaven-antrun-プラグインを使用することができますビルド時にあなたのために。あなたのプロジェクトチームのためにこれ以上の手動介入しない(私は公式のappengine-のmaven-pluginのでこれを使用するには、Mavenの-GAE-プラグインで使用するためのパスを適応させる必要があります):

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.7</version> 
    <executions> 
    <execution> 
     <!-- Use 'package' instead of 'install' if you want the Driver to be available for 'integration-test' --> 
     <phase>package</phase> 
     <configuration> 
     <target> 
      <!-- delete existing mysql jar from appengine sdk lib/impl --> 
      <delete> 
      <fileset 
       dir="${settings.localRepository}/com/google/appengine/appengine-java-sdk/${appengine.target.version}/appengine-java-sdk/appengine-java-sdk-${appengine.target.version}/lib/impl" 
       includes="**/mysql-connector-java*" /> 
      </delete> 
      <!-- copy mysql jar into appengine sdk lib/impl --> 
      <copy 
      file="${settings.localRepository}/mysql/mysql-connector-java/${mysql.version}/mysql-connector-java-${mysql.version}.jar" 
      todir="${settings.localRepository}/com/google/appengine/appengine-java-sdk/${appengine.target.version}/appengine-java-sdk/appengine-java-sdk-${appengine.target.version}/lib/impl"/> 
     </target> 
     </configuration> 
     <goals> 
     <goal>run</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 
+0

これは人生の節約者であり、エレガントです、神はあなたに私の友人を祝福します –

関連する問題