Coder Social home page Coder Social logo

appengine-cloudsql-native-mysql-jdbc-demo-java's Introduction

Google Cloud SQL/App Engine native JBDC demo

This demo contains an example program that shows how to use JDBC with native MySQL connections to connect from Google App Engine to Google Cloud SQL both in development mode and on App Engine.

Requirements

  • Apache Maven 3.0 or greater
  • a local MySQL server (for running locally with devserver)
  • JDK 7+

Clone this repository to a local directory. Maven will download all the other dependencies.

Deploying

To build, run:

mvn package

Local deployment

To start the app, use the App Engine Maven Plugin that is included in this demo. Just run the command:

mvn appengine:devserver

App Engine deployment

In pom.xml update the following properties:

  • appengine.app.appId to point to your App Engine application ID
  • cloudsql.url to point to your Cloud SQL instance by replacing your-instance-name with the full name of your instance (this looks either like my_project:my_instance for non-domain specific instances or like my_domain:my_project:my_instance for the domain-specific ones).

To deploy the app run the following command:

mvn appengine:update

Contributing changes

Licensing

appengine-cloudsql-native-mysql-jdbc-demo-java's People

Contributors

ludoch avatar razvanm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

appengine-cloudsql-native-mysql-jdbc-demo-java's Issues

Build Failure on devserver

upon running the command:
mvn appengine:devserver

getting the following build failure -- the instructions indicate that maven plugin would be included, is this related to the plugin issue? Running on Win 7, Java SDK 1.7.0.21

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 56.778s
[INFO] Finished at: Fri Feb 07 17:51:29 EST 2014
[INFO] Final Memory: 18M/255M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.google.appengine:appengine-maven-plugin:1.8.1
:devserver (default-cli) on project native-mysql-jdbc: Execution default-cli of
goal com.google.appengine:appengine-maven-plugin:1.8.1:devserver failed: A requi
red class was missing while executing com.google.appengine:appengine-maven-plugi
n:1.8.1:devserver: Lorg/sonatype/aether/RepositorySystem;
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>com.google.appengine:appengine-maven-plugin:1.8.1
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/C:/Users/KK/.m2/repository/com/google/appengine/appengin
e-maven-plugin/1.8.1/appengine-maven-plugin-1.8.1.jar
[ERROR] urls[1] = file:/C:/Users/KK/.m2/repository/org/sonatype/sisu/sisu-inject
-bean/2.1.1/sisu-inject-bean-2.1.1.jar
[ERROR] urls[2] = file:/C:/Users/KK/.m2/repository/org/sonatype/sisu/sisu-guice/
2.9.4/sisu-guice-2.9.4-no_aop.jar
[ERROR] urls[3] = file:/C:/Users/KK/.m2/repository/org/codehaus/plexus/plexus-in
terpolation/1.14/plexus-interpolation-1.14.jar
[ERROR] urls[4] = file:/C:/Users/KK/.m2/repository/org/codehaus/plexus/plexus-ut
ils/2.0.6/plexus-utils-2.0.6.jar
[ERROR] urls[5] = file:/C:/Users/KK/.m2/repository/org/codehaus/plexus/plexus-co
mponent-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
[ERROR] urls[6] = file:/C:/Users/KK/.m2/repository/org/sonatype/plexus/plexus-se
c-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
[ERROR] urls[7] = file:/C:/Users/KK/.m2/repository/org/sonatype/plexus/plexus-ci
pher/1.4/plexus-cipher-1.4.jar
[ERROR] urls[8] = file:/C:/Users/KK/.m2/repository/org/sonatype/aether/aether-ut
il/1.13.1/aether-util-1.13.1.jar
[ERROR] urls[9] = file:/C:/Users/KK/.m2/repository/com/google/guava/guava/14.0.1
/guava-14.0.1.jar
[ERROR] urls[10] = file:/C:/Users/KK/.m2/repository/com/google/appengine/appengi
ne-tools-sdk/1.8.1/appengine-tools-sdk-1.8.1.jar
[ERROR] urls[11] = file:/C:/Users/KK/.m2/repository/com/google/appengine/appengi
ne-local-endpoints/1.8.1/appengine-local-endpoints-1.8.1.jar
[ERROR] urls[12] = file:/C:/Users/KK/.m2/repository/com/google/appengine/appengi
ne-endpoints/1.8.1/appengine-endpoints-1.8.1.jar
[ERROR] urls[13] = file:/C:/Users/KK/.m2/repository/com/google/appengine/appengi
ne-api-1.0-sdk/1.8.1/appengine-api-1.0-sdk-1.8.1.jar

Problems connecting to local mysql database when using Java 7u25

I tried this on Ubuntu 13.04 x64 and had the following problem:

java.sql.SQLException: Unable to initialize driver properties due to java.lang.IllegalAccessException: Class com.google.appengine.tools.development.agent.runtime.Runtime$21 can not access a member of class com.mysql.jdbc.ConnectionPropertiesImpl with modifiers "private"
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
    at com.mysql.jdbc.ConnectionPropertiesImpl.initializeProperties(ConnectionPropertiesImpl.java:2819)
    at com.mysql.jdbc.ConnectionImpl.initializeDriverProperties(ConnectionImpl.java:3490)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:823)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance_(Runtime.java:127)
    at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance(Runtime.java:135)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:233)
    at com.google.appengine.demos.JdbcServlet.doGet(JdbcServlet.java:51)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:123)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.DevAppServerServersFilter.doDirectRequest(DevAppServerServersFilter.java:369)
    at com.google.appengine.tools.development.DevAppServerServersFilter.doDirectServerRequest(DevAppServerServersFilter.java:352)
    at com.google.appengine.tools.development.DevAppServerServersFilter.doFilter(DevAppServerServersFilter.java:115)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
    at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:97)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:480)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:326)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

Searching online I found this and this both blaming Java 7u75 and recommending 7u21.

I downgraded my installed version of Java using the following procedure, adapted from this question:

wget http://gb.archive.ubuntu.com/ubuntu/pool/main/o/openjdk-7/openjdk-7-jre-headless_7u21-2.3.9-1ubuntu1_amd64.deb
wget http://gb.archive.ubuntu.com/ubuntu/pool/main/o/openjdk-7/openjdk-7-jre-lib_7u21-2.3.9-1ubuntu1_all.deb
sudo dpkg -i openjdk-7-jre-lib_7u21-2.3.9-1ubuntu1_all.deb 
sudo dpkg -i openjdk-7-jre-headless_7u21-2.3.9-1ubuntu1_amd64.deb 
java -version

After downgrading from 7u25 to 7u21 the problem went away.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.