3
respostas

Problema com o Tomcatv8.5

Ao "startar" o Tomcat ocorria um erro de timeout. Aumentei o tempo de Start de 45 para 900 segundos. Agora o servidor inicia mas aparecem vários erros no console. Veja a listagem abaixo:

GRAVE: Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'criadorDeProdutos': Invocation of init method failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Could not open connection
...
Caused by: org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Could not open connection
...
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Could not open connection
...
Caused by: org.hibernate.exception.GenericJDBCException: Could not open connection
...
Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
...
Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
...
INFORMAÇÕES: Server startup in 102047 ms

Obrigado e abraços.

3 respostas

Boa noite Hilton, pode postar um pouco do seu código por favor? XML, o modelo...

Bom dia Guilherme,

Estou no curso Java e JPA, Aula 05-Gerenciando conexão com pool de conexões, Atividade 02-Configurações importantes do poll C3PO.

No início da aula copiei o projeto disponível em https://s3.amazonaws.com/caelum-online-public/jpa-avancado/stages/capitulo-5.zip. Fiz apenas as alterações abaixo.

Na classe JpaConfigurator:

@Bean
public DataSource getDataSource() throws PropertyVetoException {
        ComboPooledDataSource dataSource = new ComboPooledDataSource();
        dataSource.setDriverClass("com.mysql.jdbc.Driver");
        dataSource.setUser("root");
        dataSource.setPassword("q1w2e3r4");
        dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/projeto-jpa-2");

        dataSource.setMinPoolSize(5);
        dataSource.setNumHelperThreads(5);

        return dataSource;
    }

E criei a classe TestaPool conforme abaixo:

package br.com.caelum;

import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class TestaPool {

    public static void main(String[] args) throws PropertyVetoException, SQLException {
        ComboPooledDataSource dataSource = (ComboPooledDataSource) new JpaConfigurator().getDataSource();
        Connection connection = dataSource.getConnection();

        System.out.println("Número de conexões ocupadas: "+dataSource.getNumBusyConnections());
        System.out.println("Número de conexões ociosoas: "+dataSource.getNumIdleConnections());
    }

}

O erro ocorre quando executo (Run on Server) a classe TestaPool. Obrigado mais uma vez.

Hilton, tenta que testar como Java Application.