darlan_machado 22 de nov. de 2019
Coloca o stacktrace completo
Venoms 22 de nov. de 2019
Segue completo as StackTrace
org . springframework . beans . factory . BeanCreationException: Error creating bean with name ' contaController ' : Injection of autowired dependencies failed ; nested exception is org . springframework . beans . factory . BeanCreationException: Could not autowire field: private br . com . caelum . contas . dao . ContaDAO br . com . caelum . contas . controller . ContaController . dao ; nested exception is org . springframework . beans . factory . BeanCreationException: Error creating bean with name ' contaDAO ' defined in file [ C: \Users\Marcio\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\contas\WEB-INF\classes\br\com\caelum\contas\dao\ContaDAO.class]: Instantiation of bean failed ; nested exception is org . springframework . beans . BeanInstantiationException: Could not instantiate bean class [ br . com . caelum . contas . dao . ContaDAO ] : Constructor threw exception ; nested exception is java . lang . RuntimeException: org . apache . commons . dbcp . SQLNestedException: Cannot create PoolableConnectionFactory ( Communications link failure
Root Cause
org . springframework . beans . factory . BeanCreationException: Could not autowire field: private br . com . caelum . contas . dao . ContaDAO br . com . caelum . contas . controller . ContaController . dao ; nested exception is org . springframework . beans . factory . BeanCreationException: Error creating bean with name ' contaDAO ' defined in file [ C: \Users\Marcio\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\contas\WEB-INF\classes\br\com\caelum\contas\dao\ContaDAO.class]: Instantiation of bean failed ; nested exception is org . springframework . beans . BeanInstantiationException: Could not instantiate bean class [ br . com . caelum . contas . dao . ContaDAO ] : Constructor threw exception ; nested exception is java . lang . RuntimeException: org . apache . commons . dbcp . SQLNestedException: Cannot create PoolableConnectionFactory ( Communications link failure
Root Cause
org . springframework . beans . factory . BeanCreationException: Error creating bean with name ' contaDAO ' defined in file [ C: \Users\Marcio\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\contas\WEB-INF\classes\br\com\caelum\contas\dao\ContaDAO.class]: Instantiation of bean failed ; nested exception is org . springframework . beans . BeanInstantiationException: Could not instantiate bean class [ br . com . caelum . contas . dao . ContaDAO ] : Constructor threw exception ; nested exception is java . lang . RuntimeException: org . apache . commons . dbcp . SQLNestedException: Cannot create PoolableConnectionFactory ( Communications link failure
Root Cause
org . springframework . beans . BeanInstantiationException: Could not instantiate bean class [ br . com . caelum . contas . dao . ContaDAO ] : Constructor threw exception ; nested exception is java . lang . RuntimeException: org . apache . commons . dbcp . SQLNestedException: Cannot create PoolableConnectionFactory ( Communications link failure
Root Cause
java . lang . RuntimeException: org . apache . commons . dbcp . SQLNestedException: Cannot create PoolableConnectionFactory ( Communications link failure
Root Cause
org . apache . commons . dbcp . SQLNestedException: Cannot create PoolableConnectionFactory ( Communications link failure
Root Cause
com . mysql . jdbc . exceptions . jdbc4 . CommunicationsException: Communications link failure
Root Cause
java . net . ConnectException: Connection refused: connect
alessandro-cav 22 de nov. de 2019
por essa definição pode ser que esteja faltando as anotações corretas do spring na classe para realizar as injeção de dependência.
olhando só o erro
Venoms 23 de nov. de 2019
Vou dar uma verificada , outra coisa que também pode estar acontecendo é o erro na conexão com banco de dados
alessandro-cav 23 de nov. de 2019 1 like
blz , qualquer coisa você testa e depois posta se resolveu ou nao.
darlan_machado 25 de nov. de 2019
Bingo! É exatamente isso, a conexão foi recusada. Provavelmente, usuário e/ou senha inválidos.
Venoms 25 de nov. de 2019
Vou dar uma olhada nisso, na instalação do Tomcat 9 , eu coloquei senhas diferentes sim , isso é verdade , vou testar lá e logo digo aqui , valeu ; )
Venoms 25 de nov. de 2019
Vou dar uma olhada nisso, na instalação do Tomcat 9 , eu coloquei senhas diferentes sim , isso é verdade , vou testar lá e logo digo aqui , valeu ; )
Vou verificar o Myql , o Tomcat 9 até coloquei a mesma senha mas não adiantou , dando os mesmos errors de conectividade
darlan_machado 25 de nov. de 2019
Você está usando Spring mvc ou spring boot?
Venoms 25 de nov. de 2019
Venoms 25 de nov. de 2019
darlan_machado 25 de nov. de 2019
Teu banco já possui uma tabela chamada conta?
Venoms 25 de nov. de 2019
Isso mesmo, acho que é isso que esta acontecendo eu não criei essa tabela , deixa eu ver lá
Venoms 28 de nov. de 2019
Darlan, esse projeto é do Curso de Spring FrameWork da Alura , ele não veio completo na explicação com a conexão ao banco de dados, ou então as configurações ao MySql que fiz estavam erradas, então decidir pegar outro projeto pra dar uma estudada mais completo, nesse link aqui nesse blog tem um projeto de ponta a ponta com Spring FrameWork:
Criando uma aplicação com Spring MVC, AngularJS, JPA e Wildfly
Fabio_Dos_Reis 28 de nov. de 2019
mostra o código da sua classe contaDAO, me parece que você está fazendo um @autoWired de um bean, no caso esse bean não está sendo gerenciado pelo spring, por isso ele não encontra.
Venoms 28 de nov. de 2019
mostra o código da sua classe contaDAO, me parece que você está fazendo um @autoWired de um bean, no caso esse bean não está sendo gerenciado pelo spring, por isso ele não encontra.
Eu vou postar aqui mas estou seguindo outro post , mas veja ai , talvez alguma coisa realmente esteja faltando
package br.com.caelum.contas.dao ;
import java.sql.Connection ;
import java.sql.Date ;
import java.sql.PreparedStatement ;
import java.sql.ResultSet ;
import java.sql.SQLException ;
import java.util.ArrayList ;
import java.util.Calendar ;
import java.util.List ;
import javax.sql.DataSource ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.stereotype.Repository ;
import br.com.caelum.contas.modelo.Conta ;
import br.com.caelum.contas.modelo.TipoDaConta ;
@Repository
public class ContaDAO {
private Connection connection ;
@Autowired
public ContaDAO ( DataSource dataSource ) {
try {
this . connection = dataSource . getConnection ();
} catch ( SQLException e ) {
throw new RuntimeException ( e );
}
}
public void adiciona ( Conta conta ) {
String sql = "insert into contas (descricao, paga, valor, tipo) values (?,?,?,?)" ;
PreparedStatement stmt ;
try {
stmt = connection . prepareStatement ( sql );
stmt . setString ( 1 , conta . getDescricao ());
stmt . setBoolean ( 2 , conta . isPaga ());
stmt . setDouble ( 3 , conta . getValor ());
stmt . setString ( 4 , conta . getTipo (). name ());
stmt . execute ();
} catch ( SQLException e ) {
throw new RuntimeException ( e );
}
}
public void remove ( Conta conta ) {
if ( conta . getId () == null ) {
throw new IllegalStateException ( "Id da conta naoo deve ser nula." );
}
String sql = "delete from contas where id = ?" ;
PreparedStatement stmt ;
try {
stmt = connection . prepareStatement ( sql );
stmt . setLong ( 1 , conta . getId ());
stmt . execute ();
} catch ( SQLException e ) {
throw new RuntimeException ( e );
}
}
public void altera ( Conta conta ) {
String sql = "update contas set descricao = ?, paga = ?, dataPagamento = ?, tipo = ?, valor = ? where id = ?" ;
PreparedStatement stmt ;
try {
stmt = connection . prepareStatement ( sql );
stmt . setString ( 1 , conta . getDescricao ());
stmt . setBoolean ( 2 , conta . isPaga ());
stmt . setDate ( 3 , conta . getDataPagamento () != null ? new Date ( conta
. getDataPagamento (). getTimeInMillis ()) : null );
stmt . setString ( 4 , conta . getTipo (). name ());
stmt . setDouble ( 5 , conta . getValor ());
stmt . setLong ( 6 , conta . getId ());
stmt . execute ();
} catch ( SQLException e ) {
throw new RuntimeException ( e );
}
}
public List < Conta > lista () {
try {
List < Conta > contas = new ArrayList < Conta > ();
PreparedStatement stmt = this . connection
. prepareStatement ( "select * from contas" );
ResultSet rs = stmt . executeQuery ();
while ( rs . next ()) {
// adiciona a conta na lista
contas . add ( populaConta ( rs ));
}
rs . close ();
stmt . close ();
return contas ;
} catch ( SQLException e ) {
throw new RuntimeException ( e );
}
}
public Conta buscaPorId ( Long id ) {
if ( id == null ) {
throw new IllegalStateException ( "Id da conta nao deve ser nula." );
}
try {
PreparedStatement stmt = this . connection
. prepareStatement ( "select * from contas where id = ?" );
stmt . setLong ( 1 , id );
ResultSet rs = stmt . executeQuery ();
if ( rs . next ()) {
return populaConta ( rs );
}
rs . close ();
stmt . close ();
return null ;
} catch ( SQLException e ) {
throw new RuntimeException ( e );
}
}
public void paga ( Long id ) {
if ( id == null ) {
throw new IllegalStateException ( "Id da conta nao deve ser nula." );
}
String sql = "update contas set paga = ?, dataPagamento = ? where id = ?" ;
PreparedStatement stmt ;
try {
stmt = connection . prepareStatement ( sql );
stmt . setBoolean ( 1 , true );
stmt . setDate ( 2 , new Date ( Calendar . getInstance (). getTimeInMillis ()));
stmt . setLong ( 3 , id );
stmt . execute ();
} catch ( SQLException e ) {
throw new RuntimeException ( e );
}
}
private Conta populaConta ( ResultSet rs ) throws SQLException {
Conta conta = new Conta ();
conta . setId ( rs . getLong ( "id" ));
conta . setDescricao ( rs . getString ( "descricao" ));
conta . setPaga ( rs . getBoolean ( "paga" ));
conta . setValor ( rs . getDouble ( "valor" ));
Date data = rs . getDate ( "dataPagamento" );
if ( data != null ) {
Calendar dataPagamento = Calendar . getInstance ();
dataPagamento . setTime ( data );
conta . setDataPagamento ( dataPagamento );
}
conta . setTipo ( Enum . valueOf ( TipoDaConta . class , rs . getString ( "tipo" )));
return conta ;
}
}