2012-03-18 76 views
0

我使用GoogleAppEngine作为我server.I已经(使用SQL作为我的数据库)编写的Struts框架的一个简单的JDBC应用。但不知道为什么我无法正确运行它。 下面是我得到的例外......有一个例外com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException上GoogleAppEngine

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) 

这里是模型类的代码,我已经尝试

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; 
    } 
} 
+1

应该张贴,让你您的数据库连接 – 2012-03-18 07:31:44

+0

我haved编辑我的职务,并添加了JDBC类模型的代码。 – Hablu 2012-03-19 00:57:48

回答

0

什么是你的连接网址?你正在连接正确的端口吗? ?你可以张贴一些代码Mysql的通常运行在端口3306

+0

我编辑了我的文章并添加了jdbc类模型。 – Hablu 2012-03-19 00:58:30

+0

您的连接网址错误。它应该包含如下所示的端口:jdbc:mysql:// localhost:3306/test – sachinrahulsourav 2012-03-19 03:40:50

0

谷歌应用程序引擎从Google- -the平台作为一种服务的工具,默认情况下不能够连接到一个关系数据库;相反,它提供了一个No-SQL DataStore(称为Bigtable)。

现在,谷歌是在beta测试一个RDBMS祭GAE应用,MySQL数据库来实现。如果你是该服务的测试,你应该使用谷歌的MySQL驱动程序(com.google.appengine.api.rdbms.AppEngineDriver)及其相应的JDBC连接URL(JDBC中的格式:谷歌:RDBMS:// INSTANCE_NAME /留言)。更多信息here

相关问题