Получено исключение com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException в GoogleAppEngine - PullRequest
0 голосов
/ 18 марта 2012

Я использую GoogleAppEngine в качестве своего сервера. Я написал простое приложение jdbc на платформе Struts (используя sql в качестве базы данных).Но не знаю, почему я не могу правильно его запустить.Вот исключение, которое я получил ...

 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.

Here is the full error log that i got

     [java] com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
     [java]         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
     [java]         at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
     [java]         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
     [java]         at java.lang.reflect.Constructor.newInstance(Unknown Source)
     [java]         at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance_(Runtime.java:116)
     [java]         at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance(Runtime.java:124)
     [java]         at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
     [java]         at com.mysql.jdbc.Util.getInstance(Util.java:386)
     [java]         at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
     [java]         at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
     [java]         at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
     [java]         at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
     [java]         at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2412)
     [java]         at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2154)
     [java]         at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792)
     [java]         at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
     [java]         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
     [java]         at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
     [java]         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
     [java]         at java.lang.reflect.Constructor.newInstance(Unknown Source)
     [java]         at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance_(Runtime.java:116)
     [java]         at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance(Runtime.java:124)
     [java]         at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
     [java]         at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
     [java]         at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
     [java]         at java.sql.DriverManager.getConnection(Unknown Source)
     [java]         at java.sql.DriverManager.getConnection(Unknown Source)
     [java]         at com.cac.struts.InsertMethod.<init>(InsertMethod.java:19)
     [java]         at com.cac.struts.InsertAction.execute(InsertAction.java:23)
     [java]         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
     [java]         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
     [java]         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
     [java]         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
     [java]         at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
     [java]         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
     [java]         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
     [java]         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
     [java]         at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35)
     [java]         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
     [java]         at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:60)
     [java]         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
     [java]         at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
     [java]         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
     [java]         at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
     [java]         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
     [java]         at com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97)
     [java]         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
     [java]         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
     [java]         at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
     [java]         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
     [java]         at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
     [java]         at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
     [java]         at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:78)
     [java]         at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
     [java]         at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:363)
     [java]         at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
     [java]         at org.mortbay.jetty.Server.handle(Server.java:326)
     [java]         at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
     [java]         at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
     [java]         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
     [java]         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
     [java]         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
     [java]         at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
     [java]         at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
     [java] Caused by: java.security.AccessControlException: access denied (java.net.SocketPermission localhost resolve)
     [java]         at java.security.AccessControlContext.checkPermission(Unknown Source)
     [java]         at java.security.AccessController.checkPermission(Unknown Source)
     [java]         at java.lang.SecurityManager.checkPermission(Unknown Source)
     [java]         at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:252)
     [java]         at java.lang.SecurityManager.checkConnect(Unknown Source)
     [java]         at java.net.InetAddress.getAllByName0(Unknown Source)
     [java]         at java.net.InetAddress.getAllByName0(Unknown Source)
     [java]         at java.net.InetAddress.getAllByName(Unknown Source)
     [java]         at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:247)
     [java]         at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:294)
     [java]         at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2333)
     [java]         at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2370)
     [java]         ... 51 more
     [java] java.lang.NullPointerException
     [java]         at com.cac.struts.InsertMethod.insert(InsertMethod.java:33)
     [java]         at com.cac.struts.InsertAction.execute(InsertAction.java:24)
     [java]         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
     [java]         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
     [java]         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
     [java]         at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
     [java]         at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
     [java]         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
     [java]         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
     [java]         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
     [java]         at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35)
     [java]         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
     [java]         at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:60)
     [java]         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
     [java]         at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
     [java]         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
     [java]         at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
     [java]         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
     [java]         at com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97)
     [java]         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
     [java]         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
     [java]         at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
     [java]         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
     [java]         at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
     [java]         at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
     [java]         at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:78)
     [java]         at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
     [java]         at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:363)
     [java]         at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
     [java]         at org.mortbay.jetty.Server.handle(Server.java:326)
     [java]         at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
     [java]         at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
     [java]         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
     [java]         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
     [java]         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
     [java]         at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
     [java]         at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

Вот код класса Model, который я пробовал

package com.cac.struts;
import java.sql.*;
/**
 *
 * @author hablu
 */
public class InsertMethod {
    Connection con=null;
    public InsertMethod()
    {
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            con=DriverManager.getConnection("jdbc:mysql://localhost/test","root","");
            //Class.forName("oracle.jdbc.driver.OracleDriver");
            //con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","system");
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
    public boolean insert(int regd)
    {
        boolean b=false;
        try
        {
            PreparedStatement ps=con.prepareStatement("select * from student where regd=?");
            ps.setInt(1,regd);
            ResultSet rs=ps.executeQuery();
            while(rs.next())
            {
                b=true;
                System.out.println("....."+rs.getString(1));
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        return b;
    }
}

Ответы [ 2 ]

0 голосов
/ 19 марта 2012

Google App Engine - инструмент «Платформа как услуга» от Google - по умолчанию не позволяет подключаться к реляционной базе данных;вместо этого он предлагает No-SQL DataStore (известный как Bigtable).

Сейчас Google находится в стадии бета-тестирования RDBMS, предлагающей приложения GAE, реализованной в виде базы данных MySQL.Если вы тестируете эту службу, вам следует использовать драйвер MySQL от Google (com.google.appengine.api.rdbms.AppEngineDriver) и соответствующий ему URL-адрес соединения с JDBC (в формате jdbc: google: rdbms: // имя_экземпляра /гостевая книга).Больше информации здесь .

0 голосов
/ 18 марта 2012

Какой у вас URL для подключения?Вы подключаетесь к правильному порту?Можете ли вы опубликовать некоторый код? Mysql обычно работает на порт 3306.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...