Oi,
Pergunto-me como posso capturar uma possível exceção usando JPA, quando cria uma nova instância com EntityManagerFactory? Estou trabalhando com Hibernate 3.3.1 e Entitymanager 3.4.0.
Por exemplo, se o banco de dados não é alcançável ou assim, gostaria de pegar a ressalva, porém não tenho conseguido fazê-lo. Atingir o Throwable também não funciona.
Aqui está o meu código.
try {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("my_database", null);
} catch (Throwable t) {
//Quero ir para aqui, se alguma coisa correr mal ...
System.out.println("** Error: " + t.getMessage());
}
- com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@f1f051 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception:
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused: connect
STACKTRACE:
java.net.SocketException: java.net.ConnectException: Connection refused: connect
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:276)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2592)
at com.mysql.jdbc.Connection.<init>(Connection.java:1509)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:135)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledCo