Erro ao tentar persistir objeto

5 respostas
cloudx

ola galera,
primeiro estou usando hibernate e mysql
quando tento rodara essa classe recebo um erro:
package beans.persistencia;

import java.sql.SQLException;

import beans.*;

public class TesteClinica {

/**
 * @param args
 */
public static void main(String[] args) {
	
	Endereco end = new Endereco();
	
	end.setBairro("centro");
	end.setCep(62300000);
	end.setCidade("fortaleza");
	end.setLogradouro("Avenida Beira Mar");
	end.setNumero(244);
	end.setUf("ce");
	
	Clinica clin = new Clinica();
	clin.setCnpj(123456);
	clin.setEmail("[email removido]");
	clin.setEndereco(end);
	clin.setNome("dos olhos");
	clin.setResponsavel("cloud");
	clin.setTelefone[telefone removido]);
	
	try{
		ClinicaDao clinicaDao = DaoFactory.getClinicaDao();
		clinicaDao.salvar(clin);
	}catch(SQLException e){
		System.out.println("SQL EXCEPTION");
	}
	catch(Exception e){
		System.out.println("EXCEPTION");
	}finally{
		System.out.println("FINALY");
	}

}

}

erro :

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).

log4j:WARN Please initialize the log4j system properly.

org.hibernate.exception.JDBCConnectionException: Cannot open connection

at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)

at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)

at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)

at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)

at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)

at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)

at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)

at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)

at beans.persistencia.AbstractDao.salvar(AbstractDao.java:101)

at beans.persistencia.TesteEndereco.main(TesteEndereco.java:33)

Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
Last packet sent to the server was 0 ms ago.

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)

at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)

at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2103)

at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:718)

at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:46)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)

at java.lang.reflect.Constructor.newInstance(Constructor.java:513)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)

at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)

at java.sql.DriverManager.getConnection(DriverManager.java:582)

at java.sql.DriverManager.getConnection(DriverManager.java:154)

at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)

at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423) 6 more

Caused by: java.net.ConnectException: Connection refused: connect

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)

at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)

at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)

at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)

at java.net.Socket.connect(Socket.java:519)

at java.net.Socket.connect(Socket.java:469)

at java.net.Socket.(Socket.java:366)

at java.net.Socket.(Socket.java:209)

at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253)

at com.mysql.jdbc.MysqlIO.(MysqlIO.java:280)

at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2026) 19 more
eu não entendi por que ocorre esse erro

se é na hora de fazer a conexão com o banco

ou algun erro de lógica ou configuracao

abaixo a classe abstract dao:

public abstract class AbstractDao<Tipo, TipoID extends Serializable> implements InterfaceDao<Tipo, TipoID>{

public void salvar(Tipo obj) throws Exception {

session = HibernateUtil.getSession();

try{

tx = session.beginTransaction();

session.save(obj);

tx.commit();

}

catch(Exception e){

if(tx != null)

tx.rollback();

e.printStackTrace();

throw e;

}

finally{

session.close();

}

}

}

5 Respostas

T

Isso pode ser porque você especificou a configuração da conexão com o banco incorretamente, ou porque o banco não está configurado para receber conexões externas.

G

tambem estou com o mesmo problema.
thiagol, mas estou tentando acessar o mysql localmente mesmo assim ele da esse erro.

Sabe como resolver isso?

aeciovc

estou com o mesmo problema aguém sabe como resolver??

UpTheIrons

Era bom publicar seu arquivo de configuração do Hibernate e como seu DAO tá fazendo o processo,
pois o erro está ao abrir a conexão.

aeciovc

resolvi… o meu era a porta do MySQL que havia colocado errada!! vlw!

Criado 13 de junho de 2008
Ultima resposta 12 de jul. de 2010
Respostas 5
Participantes 5