Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MySQL连接的GWT问题_Java_Mysql - Fatal编程技术网

Java MySQL连接的GWT问题

Java MySQL连接的GWT问题,java,mysql,Java,Mysql,我正在从事一个GWT项目,其中需要进行一些MySQL查询。我已经正确处理了RPC,在服务器端我试图建立mysql连接,但遇到了一个异常: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建到数据库服务器的连接。 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAc

我正在从事一个GWT项目,其中需要进行一些MySQL查询。我已经正确处理了RPC,在服务器端我试图建立mysql连接,但遇到了一个异常:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建到数据库服务器的连接。 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源) 位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源) 位于java.lang.reflect.Constructor.newInstance(未知源) 在com.google.appengine.tools.development.agent.runtime.runtime.newInstance(runtime.java:112)上 位于com.google.appengine.tools.development.agent.runtime.runtime.newInstance(runtime.java:120) 位于com.mysql.jdbc.Util.HandleneInstance(Util.java:411) 位于com.mysql.jdbc.Util.getInstance(Util.java:386) 位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013) 位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) 位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) 位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) 位于com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2412) 位于com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2154) 位于com.mysql.jdbc.ConnectionImpl(ConnectionImpl.java:792) 位于com.mysql.jdbc.JDBC4Connection(JDBC4Connection.java:47) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源) 位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源) 位于java.lang.reflect.Constructor.newInstance(未知源) 在com.google.appengine.tools.development.agent.runtime.runtime.newInstance(runtime.java:112)上 位于com.google.appengine.tools.development.agent.runtime.runtime.newInstance(runtime.java:120) 位于com.mysql.jdbc.Util.HandleneInstance(Util.java:411) 位于com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381) 位于com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305) 位于java.sql.DriverManager.getConnection(未知源) 位于java.sql.DriverManager.getConnection(未知源) . . . 更多 . .

我创建了一个非常简单的java类来测试我的代码,以确认我的连接语法和使用是正确的,并且已经确认语法不是问题,因为在一个简单的仅主方法java应用程序中使用相同的代码,我可以创建连接并正确查询数据库。我已经确保在classpath中有mysql-connector-java-5.1.16-bin.jar,在WEB-INF文件夹中有/lib文件夹

下面是我用来创建连接的类:

公共类DB_连接{

受保护的连接getConnection(){ 连接conn=null; 试一试{ Class.forName(“com.mysql.jdbc.Driver”).newInstance(); conn=DriverManager.getConnection(“jdbc:mysql://”, "", );
} 捕获(例外情况除外) { 例如printStackTrace(); }

}

}

公共类登录扩展了DB_连接{

公共用户getUser(字符串电子邮件){ 用户=新用户(); user.setUserEmail(电子邮件); 字符串查询=”

}

我的问题似乎在DB_连接的一开始就出现了。有人知道是什么导致了这种情况吗?这对我来说很奇怪,因为作为一个独立的程序,代码工作得很好

另一件事是,我刚刚意识到我现在在家,甚至无法访问数据库服务器,因为它位于本地网络上,并且我没有通过VPN连接。因此,在它尝试连接之前,它一定是以某种方式失败了

谢谢!

com.google.appengine。。 这是否意味着您正在部署谷歌应用程序引擎?
如果是这样的话,MySQL、JDBC和其他很多东西都会受到限制。

我认为这与GWTNo没有任何关系,我不打算部署到App Engine,也不知道它为什么要尝试使用它。可能是因为当我开始时,我从示例项目生成了代码,然后清理了它。与App Engine相关的设置会在哪里找到了吗?啊,哇…我从路径和运行配置中删除了应用引擎,现在正在正确建立连接:)非常感谢您注意到这可能是问题所在!我得到了一个“现在构建路径中不包含应用引擎SDK”虽然应用程序运行良好。现在要尝试从应用程序引擎中删除任何内容。我在一开始生成测试代码并将其清理掉,把自己搞砸了。
  return conn;
  try {
     Connection conn = getConnection();
     Statement statement = conn.createStatement();
     ResultSet result = statement.executeQuery(query);
     while(result.next()) {
        user.setUserId(result.getInt("rvuser_id"));
        System.out.println(user.getUserId());
     }
  }
  catch (Exception ex)
  {
     ex.printStackTrace();
  }

  return user;