Tomcat 7 MYSQL JNDI Соединение не удалось - PullRequest
0 голосов
/ 20 марта 2019

Я настроил JNDI базы данных в файле apache tomcat 7 server.xml следующим образом:

 <GlobalNamingResources>
<Resource name="jdbc/iotDB"
  global="jdbc/iotDB"
  auth="Container"
  type="javax.sql.DataSource"
  driverClassName="com.mysql.jdbc.Driver"
  url="jdbc:mysql://127.0.0.1:3306/iot"
  username="root"
  password="mysqlroot"
  validationQuery="select 1"
  maxActive="1000"
  maxIdle="20"
  minIdle="5"
  maxWait="10000"/>

Но когда я ищу тот же JNDI из моей java-программы следующим образом:

private static DataSource dataSource;
static{
    try {
        InitialContext ctx = new InitialContext();
        dataSource  = (DataSource) ctx.lookup("java:/comp/env/jdbc/iotDB");

    } catch (NamingException e) {
        // TODO: handle exception
        LOGGER.error("Unable to initailize Database JNDI, details: \n", e);
    }
    try(Connection con = dataSource.getConnection();
        String name = "test";
        PreparedStatement ps = con.prepareStatement("update rooms set updatetime = current_timestamp() where name =  ?");) {
        ps.setString(1, name);
        LOGGER.debug("statement formed as:"+ps.toString());
        if (ps.executeUpdate() > 0) {
            LOGGER.info("Update room status successfully  for room " + name);
        }
    } catch (Exception e) {
        LOGGER.error("Unable to update room status, details: \n{}", e);
    }
}

Я всегда получаю сообщение об ошибке сбоя линии связи следующим образом:

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Communications link failure

Последний пакет, успешно отправленный на сервер, был 0 миллисекунд назад.Драйвер не получил никаких пакетов от сервера.)

Caused by: java.net.SocketException: Permission denied (connect failed)

Версия MYSQL - 5.5.60-MariaDB, а версия драйвера MYSQL jdbc - 5.1.18.Я могу создать соединение с простой программой Java JDBC.Столкнувшись с этой проблемой, когда я иду для доступа к базе данных с использованием JNDI.Пожалуйста, помогите.

...