2017-04-04 11 views
0

Ich versuche, java.sql.SQLException in meiner Java-Spring-Boot-Anwendung zu fangen. Ich habe ein gutes Verständnis darüber, wie man dies auf dieser page tun. Aber da ich Springboot verwende, befinden sich meine Zugangsdaten in meiner Datei application.properties.Wie java.sql.SQLException abfangen?

mein application.properties dazu:

spring.datasource.url = jdbc:oracle:thin:@//SomePathURI 
spring.datasource.username= someUser 
spring.datasource.password= somepass 

Fehlerausgang

2017-04-04 10:18:13.866 ERROR 11684 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: ORA-01017: invalid username/password; logon denied 
] with root cause 

java.sql.SQLException: ORA-01017: invalid username/password; logon denied 

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] 
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:389) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] 
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:382) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] 
    at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:675) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] 
    at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:448) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] 
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] 
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] 
    at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:383) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] 
    at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:776) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:432) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] 
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:553) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] 
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:254) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] 
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] 
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528) ~[ojdbc6-11.2.0.4.jar:11.2.0.4.0] 
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:310) ~[tomcat-jdbc-8.5.6.jar:na] 
    at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:203) ~[tomcat-jdbc-8.5.6.jar:na] 
    at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:718) ~[tomcat-jdbc-8.5.6.jar:na] 
    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:650) ~[tomcat-jdbc-8.5.6.jar:na] 
    at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:468) ~[tomcat-jdbc-8.5.6.jar:na] 
    at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:143) ~[tomcat-jdbc-8.5.6.jar:na] 
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:118) ~[tomcat-jdbc-8.5.6.jar:na] 
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:107) ~[tomcat-jdbc-8.5.6.jar:na] 

Wie kann ich diese Ausnahme abfangen und weiterhin meine Anwendung ausgeführt wird. Anstatt die Anwendung automatisch zu stoppen und diesen Fehler anzuzeigen? Ich verstehe nicht, wie ich versuche, Fänge zu versuchen, wenn meine Verbindung in application.properties ist.

+0

Etwas ist sehr falsch, weil Sie in Ihren Eigenschaften einen mysql-Treiber verwenden und der Fehler in einem Oracle-Treiber liegt. – Sigrist

+0

@Sigrist behoben. Ich wollte nur meine Anmeldeinformationen maskieren. – Jesse

Antwort

0

Der Fehler ist sehr klar, Ihr Benutzername/Passwort ist falsch, Sie müssen es beheben. Aber Sie können Sie der Installation des Programms ohne die DB-Verbindung fortzusetzen, fügen Sie einfach die folgenden Eigenschaften in Ihre application.properties:

spring.datasource.continue-on-error=true 

abfragen detais hier: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html#howto-initialize-a-database-using-spring-jdbc

aber bewusst sein, dass Sie auf Validierungen müssen Überprüfen Sie, ob die Datenbankverbindung in Ordnung ist, wenn Sie versuchen zu verwenden.

+0

Mein Benutzername und Passwort ist absolut korrekt. Es funktioniert, wenn ich mich in Oracle DB anmelden. (Es sind einige Umweltprobleme). Der gleiche Code, der für cf bereitgestellt wird, funktioniert einwandfrei. Es funktioniert nicht lokal. Deshalb möchte ich es umgehen, um weiter zu testen – Jesse

+0

"spring.datasource.continue-on-error = true" hat nicht funktioniert, bricht immer noch meine Anwendung – Jesse

+0

Gleiche Fehlermeldung? – Sigrist

Verwandte Themen