Mit Andockfenster " launch web app können keine Verbindung zu einem Postgresql-DB?

Erhalte ich die folgende Fehlermeldung, wenn Sie versuchen zu schreiben, session-Daten mit der Tomcat PersistentManager zu einer Postgres-DB läuft auf meinem lokalen Rechner:

SEVERE: A SQL exception occurred org.postgresql.util.PSQLException: Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

Die Anwendung selbst läuft in einem docker-container. Der Vollständigkeits halber, mein Strom context.xml Datei:

<?xml version='1.0' encoding='utf-8'?>
<Context>
<Manager className="org.apache.catalina.session.PersistentManager"
    distributable="true"  processExpiresFrequency="6" maxIdleBackup="0" debug="99" >
    <Store className="org.apache.catalina.session.JDBCStore"
        driverName="org.postgresql.Driver"
        connectionURL="jdbc:postgresql://localhost/admin?stringtype=unspecified"
        connectionName="admin" connectionPassword="admin"
        sessionAppCol="app_name" sessionDataCol="session_data" sessionIdCol="session_id"
        sessionLastAccessedCol="last_access" sessionMaxInactiveCol="max_inactive"
        sessionTable="tomcat_sessions_tb" sessionValidCol="valid_session" />
</Manager>
</Context>

Gemäß den Anregungen hier: Postgresql : Connection refused. Überprüfen Sie, dass der hostname und port korrekt sind und dass der postmaster ist das akzeptieren von TCP/IP-verbindungen

Bestätigte ich, über eine netstat -aln | grep LISTEN dass Postgresql läuft, und die richtigen ports überwacht werden:

tcp4       0      0  127.0.0.1.5432         *.*                    LISTEN     
tcp6       0      0  ::1.5432                                      *.*                                           LISTEN     

wird und dass meine postgresql.conf (befindet sich in usr/local/var/postgres) hat listen_addresses = localhost und port = 5432, die Spiegel der host und port von meinem Laufenden server in Pgadmin3.

Ich vermute, dass das problem ist, dass Docker läuft in einer VM, und damit die lokalen Informationen, die ich erhalten haben, möglicherweise nicht die ganze Geschichte. Lesen Sie die verfügbaren Informationen online, es scheint, dass ich möglicherweise benötigen irgendeine Art von bridged-Netzwerk.

Aber ich gebe zu, ich bin ein Neuling in diesem Bereich, und ich bin mir nicht sicher, wie man es einrichten.

  • Ich habe seit verschoben memcached, und bin mit einem nahezu identischen Fehler. Ich bin überzeugt, jetzt ist es das bridging, aber ich bin mir nicht sicher, wie den Ansatz von Docker-Seite der Dinge.
InformationsquelleAutor Rome_Leader | 2016-05-27
Schreibe einen Kommentar