H.AL Ответов: 0

Сбой канала связи Java JDBC после публикации


Я создал свой первый API с помощью java httpServlet в netbeans. После нескольких дней работы я наконец-то смог подключить его к этой базе данных mySQL googleCloud и получить результаты локально. Но оnce этот API опубликован в Google cloud, использующем appengine, ниже была выброшена ошибка:

 Error sqlException:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
Communications link failure The last packet sent successfully to the server was 0
milliseconds ago. The driver has not received any packets from the server.


Но база данных mySQL разрешает доступ ко всем IP-адресам, так в чем же может быть проблема? Ниже приведен мой код:


public class HelloServlet extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {

        PrintWriter out = resp.getWriter();
        //out.println("Dear vistor, you are accessing my first project deployed on cloud. Thank you");

        try {
            if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) {
    Class.forName("com.mysql.jdbc.GoogleDriver");
     
        url = "jdbc:google:mysql://test-123:myInstance/myDatabase?user=root&useUnicode=true&characterEncoding=UTF-8";
    } else {
        Class.forName("com.mysql.jdbc.Driver");
        url = "jdbc:mysql://1.2.3.4:3306/myDatabase?user=root&password=test";
    }
    Connection connection = DriverManager.getConnection(url);
    try (Statement statement = connection.createStatement()) {
                ResultSet resultSet = statement.executeQuery("select test from tableTest;");
                while (resultSet.next()) {
                    out.println(resultSet.getString(1));
                }
            }        
        }catch(Exception ex){
            out.println("Exception:" + ex.toString());
        }
    }   
}


Может быть, это из-за моего projectD (потому что он имеет особый характер) ? Пожалуйста, помогите мне

Что я уже пробовал:

Я видел это несколько раз, и я сделал точное решение, как здесь и здесь

Herman<T>.Instance

Соединение.Открыть?

H.AL

getConnection в java - это соединение.Открыть в c#;

0 Ответов