2017-10-11 4 views
1

J'essaie de me connecter à MySql (= MariaDB) sur le localhost (appelons-le A) à partir d'une application Web Tomcat en utilisant Hibernate, mais continuer à obtenir un échec de liaison de communication (la trace d'exception complète ci-dessous).Échec de la connexion Tomcat/Hibernate à MySql avec "Échec du lien de communication" & "Autorisation refusée"

J'ai une autre réplique de la base de données sur une machine différente (appelons-la B) et utilise également un 3ème ordinateur pour le développement (appelons-le C).

1) Je n'ai aucun problème de connexion de C vers l'un des DB (A & B). 2) Sur "A" je n'ai aucun problème pour me connecter localement à la DB (en exécutant la commande 'mysql -u'). Je n'ai pas non plus de problème à faire de telnet sur le port 3306 à A ou à B. donc je suppose que les deux DB sont opérationnels et disponibles pour les connexions.

Le seul problème est lorsque j'essaie de me connecter de la production tomcat (fonctionnant sur A) à A ou B db. Je reçois l'erreur:

com.mysql.cj.jdbc.exceptions.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. 

De cas similaires de cette erreur, j'ai vu la majorité des erreurs étaient dues à l'utilisateur invalide/ou transmettre des informations d'identification IP illégales. J'ai également essayé de changer l'IP en localhost, 127.0.0.1 et 10.90.41.155 (qui est l'IP réelle de la machine). Rien n'aide, et aussi garder à l'esprit que la connexion échoue seulement de l'installation tomcat spécifique sur A.

J'ai essayé également les éléments suivants: 1) Ajout « -Djava.net.preferIPv4Stack = true » au démarrage catalina 2) Je ai essayé de se connecter à des adresses/ports illégaux - cela a changé (comme prévu) l'erreur finale de "permission refusée" en "pas de route à l'hôte". 3) Ajout de ce qui suit à ma chaîne de connexion: "autoReconnect = true & useUnicode = true & createDatabaseIfNotExist = true & characterEncoding = utf-8" - la même erreur s'est produite ("Tentative de reconnexion 3 fois." + " Autorisation refusée (connexion échouée) " 4) J'ai essayé les deux URL de base de données. pour la base de données locale essayé avec localhost, 127.0.0.1 et l'ip réelle. essayé avec et sans ": 3306" dans la chaîne de connexion

Ci-joint le fichier hibernate.cfg + trace complète du serveur de l'exception:

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE hibernate-configuration SYSTEM 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 

<hibernate-configuration> 
    <session-factory> 
    <property name="hibernate.dialect"> 
     org.hibernate.dialect.MySQLDialect 
    </property> 
    <property name="hibernate.connection.driver_class"> 
     com.mysql.jdbc.Driver 
    </property> 

    <!-- Assume test is the database name --> 
    <property name="hibernate.connection.url"> 
     jdbc:mysql://10.90.41.151/boonder 
    </property> 
    <property name="hibernate.connection.username"> 
     root 
    </property> 
    <property name="hibernate.connection.password"> 
    XXXXXXXXXX 
    </property> 

    <!-- List of XML mapping files  --> 
    <mapping resource="User.hbm.xml"/> 
    <mapping resource="Issue.hbm.xml"/> 
    <mapping resource="TraderIssue.hbm.xml"/> 

</session-factory> 
</hibernate-configuration> 

Exception est:

 type Exception report 

     message Handler dispatch failed; nested exception is java.lang.ExceptionInInitializerError 

     description The server encountered an internal error that prevented it from fulfilling this request. 

     exception 

     org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.ExceptionInInitializerError 
      org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982) 
      org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) 
      org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 
      org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) 
      javax.servlet.http.HttpServlet.service(HttpServlet.java:650) 
      org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 
      javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
      com.aldondy.boonder.web.controllers.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:27) 
      org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
     root cause 

     java.lang.ExceptionInInitializerError 
      com.aldondy.boonder.bl.DataSingleton.<init>(DataSingleton.java:54) 
      com.aldondy.boonder.bl.DataSingleton.instance(DataSingleton.java:74) 
      com.aldondy.boonder.web.controllers.LoginCtrl.loginInner(LoginCtrl.java:62) 
      com.aldondy.boonder.web.controllers.LoginCtrl.login(LoginCtrl.java:41) 
      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
      java.lang.reflect.Method.invoke(Method.java:498) 
      org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:180) 
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440) 
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428) 
      org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) 
      org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) 
      org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 
      org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) 
      javax.servlet.http.HttpServlet.service(HttpServlet.java:650) 
      org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 
      javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
      com.aldondy.boonder.web.controllers.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:27) 
      org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
     root cause 

     org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 
      org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:271) 
      org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233) 
      org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 
      org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51) 
      org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94) 
      org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242) 
      org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 
      org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352) 
      org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111) 
      org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83) 
      org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418) 
      org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87) 
      org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:691) 
      org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:726) 
      com.aldondy.boonder.bl.DataSingleton.<init>(DataSingleton.java:48) 
      com.aldondy.boonder.bl.DataSingleton.instance(DataSingleton.java:74) 
      com.aldondy.boonder.web.controllers.LoginCtrl.loginInner(LoginCtrl.java:62) 
      com.aldondy.boonder.web.controllers.LoginCtrl.login(LoginCtrl.java:41) 
      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
      java.lang.reflect.Method.invoke(Method.java:498) 
      org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:180) 
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440) 
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428) 
      org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) 
      org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) 
      org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 
      org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) 
      javax.servlet.http.HttpServlet.service(HttpServlet.java:650) 
      org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 
      javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
      com.aldondy.boonder.web.controllers.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:27) 
      org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
     root cause 

     org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect 
      org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:115) 
      org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:101) 
      org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:123) 
      org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:41) 
      org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58) 
      org.hibernate.engine.jdbc.connections.internal.PooledConnections.addConnections(PooledConnections.java:123) 
      org.hibernate.engine.jdbc.connections.internal.PooledConnections.<init>(PooledConnections.java:42) 
      org.hibernate.engine.jdbc.connections.internal.PooledConnections.<init>(PooledConnections.java:20) 
      org.hibernate.engine.jdbc.connections.internal.PooledConnections$Builder.build(PooledConnections.java:161) 
    ... 
      org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:691) 
      org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:726) 
      com.aldondy.boonder.bl.DataSingleton.<init>(DataSingleton.java:48) 
      com.aldondy.boonder.bl.DataSingleton.instance(DataSingleton.java:74) 
      com.aldondy.boonder.web.controllers.LoginCtrl.loginInner(LoginCtrl.java:62) 
      com.aldondy.boonder.web.controllers.LoginCtrl.login(LoginCtrl.java:41) 
      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
      java.lang.reflect.Method.invoke(Method.java:498) 
      org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:180) 
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440) 
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428) 
      org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) 
      org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) 
      org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 
      org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) 
      javax.servlet.http.HttpServlet.service(HttpServlet.java:650) 
      org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 
      javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
      com.aldondy.boonder.web.controllers.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:27) 
      org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
     root cause 

     com.mysql.cj.jdbc.exceptions.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. 
      com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:166) 
      com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:58) 
      com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:853) 
      com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:440) 
      com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) 
      com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:221) 
      org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38) 
      org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58) 

    ... 

    org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 
      org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352) 
      org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111) 
      org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83) 
      org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418) 
      org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87) 
      org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:691) 
      org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:726) 
      com.aldondy.boonder.bl.DataSingleton.<init>(DataSingleton.java:48) 
      com.aldondy.boonder.bl.DataSingleton.instance(DataSingleton.java:74) 
      com.aldondy.boonder.web.controllers.LoginCtrl.loginInner(LoginCtrl.java:62) 
      com.aldondy.boonder.web.controllers.LoginCtrl.login(LoginCtrl.java:41) 
      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
      java.lang.reflect.Method.invoke(Method.java:498) 
      org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:180) 
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440) 
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428) 
      org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) 
      org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) 
      org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 
      org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) 
      javax.servlet.http.HttpServlet.service(HttpServlet.java:650) 
      org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 
      javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
      com.aldondy.boonder.web.controllers.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:27) 
      org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
     root cause 

     com.mysql.cj.core.exceptions.CJCommunicationsException: 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. 
      sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
      sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
      sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
      java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
      com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:54) 
      com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:93) 
      com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:133) 
      com.mysql.cj.core.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:149) 
      com.mysql.cj.mysqla.io.MysqlaSocketConnection.connect(MysqlaSocketConnection.java:83) 
      com.mysql.cj.mysqla.MysqlaSession.connect(MysqlaSession.java:204) 
      com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:975) 
      com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:843) 
      com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:440) 
      com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) 
      com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:221) 
      org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38) 
      org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58) 
      org.hibernate.engine.jdbc.connections.internal.PooledConnections.addConnections(PooledConnections.java:123) 
      org.hibernate.engine.jdbc.connections.internal.PooledConnections.<init>(PooledConnections.java:42) 
      org.hibernate.engine.jdbc.connections.internal.PooledConnections.<init>(PooledConnections.java:20) 
      org.hibernate.engine.jdbc.connections.internal.PooledConnections$Builder.build(PooledConnections.java:161) 
      org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:109) 
      org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:72) 
      org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94) 
      org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242) 
    org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51) 
      org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94) 
      org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242) 
      org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 
      org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352) 
      org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111) 
      org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83) 
      org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418) 
      org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87) 
      org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:691) 
      org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:726) 
      com.aldondy.boonder.bl.DataSingleton.<init>(DataSingleton.java:48) 
      com.aldondy.boonder.bl.DataSingleton.instance(DataSingleton.java:74) 
      com.aldondy.boonder.web.controllers.LoginCtrl.loginInner(LoginCtrl.java:62) 
      com.aldondy.boonder.web.controllers.LoginCtrl.login(LoginCtrl.java:41) 
      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
      java.lang.reflect.Method.invoke(Method.java:498) 
      org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:180) 
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440) 
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428) 
      org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) 
      org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) 
      org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 
      org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) 
      javax.servlet.http.HttpServlet.service(HttpServlet.java:650) 
      org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 
      javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
      com.aldondy.boonder.web.controllers.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:27) 
      org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
     root cause 

     java.net.SocketException: Permission denied (connect failed) 
      java.net.PlainSocketImpl.socketConnect(Native Method) 
      java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 
      java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 
      java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
      java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
      java.net.Socket.connect(Socket.java:589) 
      com.mysql.cj.core.io.StandardSocketFactory.connect(StandardSocketFactory.java:202) 
      com.mysql.cj.mysqla.io.MysqlaSocketConnection.connect(MysqlaSocketConnection.java:57) 
      com.mysql.cj.mysqla.MysqlaSession.connect(MysqlaSession.java:204) 
      com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:975) 
      com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:843) 
      com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:440) 
      com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) 
      com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:221) 
      org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38) 
      org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58) 
      org.hibernate.engine.jdbc.connections.internal.PooledConnections.addConnections(PooledConnections.java:123) 
      org.hibernate.engine.jdbc.connections.internal.PooledConnections.<init>(PooledConnections.java:42) 
      org.hibernate.engine.jdbc.connections.internal.PooledConnections.<init>(PooledConnections.java:20) 
      org.hibernate.engine.jdbc.connections.internal.PooledConnections$Builder.build(PooledConnections.java:161) 
      org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:109) 
      org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:72) 
      org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94) 
      org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242) 
      org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 
      org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145) 
      org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66) 
      org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) 
      org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88) 
      org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259) 
      org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233) 
      org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 

... 
    org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87) 
      org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:691) 
      org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:726) 
      com.aldondy.boonder.bl.DataSingleton.<init>(DataSingleton.java:48) 
      com.aldondy.boonder.bl.DataSingleton.instance(DataSingleton.java:74) 
      com.aldondy.boonder.web.controllers.LoginCtrl.loginInner(LoginCtrl.java:62) 
      com.aldondy.boonder.web.controllers.LoginCtrl.login(LoginCtrl.java:41) 
      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
      java.lang.reflect.Method.invoke(Method.java:498) 
      org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428) 
      org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) 
      org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) 
      org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 
      org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) 
      javax.servlet.http.HttpServlet.service(HttpServlet.java:650) 
      org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 
      javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
      com.aldondy.boonder.web.controllers.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:27) 
      org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
     note The full stack trace of the root cause is available in the Apache Tomcat/7.0.76 logs. 
+0

également avoir le même problème, sur centos 7.4.1708 et tmocat 7.0.76 – jbu

Répondre

1

I juste aussi suivi ce problème. Mes symptômes étaient exactement les mêmes que les vôtres et j'ai même essayé les choses exactes que vous avez essayées. En résumé mon problème est survenu seulement parce que j'utilisais tomcat sur centos avec SELinux.

Certaines personnes me ont aidé à diagnostiquer en utilisant les commandes suivantes pour regarder les événements de sécurité et pourquoi certaines actions ne sont pas permittted:

sudo ausearch -m avc 
sudo grep "tcp_socket" /var/log/audit/audit.log | audit2why // translates log into some human readable reasons why the audit record was generated 

j'ai vu des entrées comme:

type=AVC msg=audit(1507861264.561:64750): avc: denied { name_connect } for pid=1326 comm="java" dest=3306 scontext=system_u:system_r:tomcat_t:s0 tcontext=system_u:object_r:mysqld_port_t:s0 tclass=tcp_socket

Was caused by: Missing type enforcement (TE) allow rule.

You can use audit2allow to generate a loadable module to allow this access.

Et puis trouvé cet article à propos de tomcat et SELinux https://noobient.com/post/165972214381/selinux-woes-with-tomcat-on-centos-74

Vous pouvez exécuter la commande suivante pour voir si tomcat s'exécute dans le contexte de sécurité tomcat_t t.

$ps auxZ | grep tomcat 

Aux fins de déterminer si vraiment mon erreur était SELinux, je désactivé SELinux

$ sestatus // shows: SELinux status:     enabled 
$ sudo vim /etc/selinux/config // set "SELINUX=disabled" 
$ sudo shutdown -r now 
$ sestatus // shows: SELinux status:     disabled 

redémarré ma machine et a vu que tomcat faisait maintenant la connexion sortante.

Super, maintenant je sais au moins POURQUOI cela se passait. Bien sûr, si vous avez besoin de SELinux, la désactiver n'est PAS une solution. Une autre solution de contournement qui n'est probablement pas une solution consiste à installer tomcat sans passer par yum. Yum installera Tomcat en utilisant le contexte de sécurité.

Je pense que le cours de l'action est maintenant de modifier le contexte de sécurité ou l'ensemble de règles régissant tomcat pour lui permettre de faire des connexions sortantes.

+0

Merci jbu! Cela a fonctionné parfaitement pour moi. Un tel soulagement après avoir été bloqué avec ça pendant si longtemps ... J'ai désactivé SELinux comme vous l'avez suggéré et maintenant SQL fonctionne bien. Maintenant, je vais commencer à creuser sur la configuration SELinux pour voir comment je peux obtenir la connectivité sans la désactiver complètement. Si vous avez d'autres conseils, ou trouvez quelque chose en rapport, merci de partager les étapes supplémentaires nécessaires. – Yoshi67

+0

vous pourriez m'aider et marquer ma réponse comme – jbu

+0

oups désolé - je viens de le faire ... – Yoshi67