Alguem sabe resolver esse erro?

Pessoal, o erro acontece quando eu instancio um objeto do tipo ClientesDAO na class CadastroClienteGraf

Meu erro:

IWAV0048I Java Bean ClienteJavaBean started with null constructor IWAV0052E Invocation Target Exception creating ClienteJavaBean java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.eclipse.ve.internal.java.vce.launcher.remotevm.JavaBeansLauncher.main(JavaBeansLauncher.java:86) Caused by: java.lang.StackOverflowError at sun.awt.Win32GraphicsConfig.getBounds(Native Method) at sun.awt.Win32GraphicsConfig.getBounds(Unknown Source) at java.awt.Window.init(Unknown Source) at java.awt.Window.<init>(Unknown Source) at java.awt.Frame.<init>(Unknown Source) at java.awt.Frame.<init>(Unknown Source) at javax.swing.JFrame.<init>(Unknown Source) at CadastroClienteGraf.<init>(CadastroClienteGraf.java:113) at ClienteJavaBean.<init>(ClienteJavaBean.java:39) at ClientesDAO.<init>(ClientesDAO.java:9) at CadastroClienteGraf.<init>(CadastroClienteGraf.java:110) at ClienteJavaBean.<init>(ClienteJavaBean.java:39) at ClientesDAO.<init>(ClientesDAO.java:9) at CadastroClienteGraf.<init>(CadastroClienteGraf.java:110) at ClienteJavaBean.<init>(ClienteJavaBean.java:39) at ClientesDAO.<init>(ClientesDAO.java:9) at CadastroClienteGraf.<init>(CadastroClienteGraf.java:110) at ClienteJavaBean.<init>(ClienteJavaBean.java:39) at ClientesDAO.<init>(ClientesDAO.java:9) (...) at CadastroClienteGraf.<init>(CadastroClienteGraf.java:110) at ClienteJavaBean.<init>(ClienteJavaBean.java:39) at ClientesDAO.<init>(ClientesDAO.java:9)

Meu codigo:

[code]public class ClientesDAO {
ClienteJavaBean Cli_JB = new ClienteJavaBean();
conexao conecta_cli = new conexao();

public ClientesDAO(){
	conecta_cli.conecta();
}

//metodo mostrar(select) dado do banco de dados
//preenchendo os campos jtextfield ou jcombobox buscando diretamente na linha do bando de dados
//essa linha é determinada no botão que chama o metodo
public void mostrar_DAO_Cli() {
	try {

		Cli_JB.setJB_JTextFieldCodigoCliente(String.valueOf(conecta_cli.resultset.getInt("codigoCliente")));
		Cli_JB.setJB_JTextFieldNome(conecta_cli.resultset.getString("nomeCliente"));
		Cli_JB.setJB_jCB_PessoaCliente(conecta_cli.resultset.getString("PessoaCliente"));
		Cli_JB.setJB_JTF_FantasiaCliente(conecta_cli.resultset.getString("fantasiaCli"));
		Cli_JB.setJB_JTextFieldCPF(conecta_cli.resultset.getString("cpfCliente"));
		Cli_JB.setJB_jTF_InscEstadual(conecta_cli.resultset.getString("InscEstadual"));
		Cli_JB.setJB_jTF_InscMunicipal(conecta_cli.resultset.getString("InscMunicipal"));
		Cli_JB.setJB_jTF_EndCliente(conecta_cli.resultset.getString("EndereçoCli"));
		Cli_JB.setJB_jTF_ComplementoCli(conecta_cli.resultset.getString("ComplementoCli"));
		Cli_JB.setJB_jTF_BairroCli(conecta_cli.resultset.getString("BairroCli"));
		Cli_JB.setJB_jTF_CidadeCli(conecta_cli.resultset.getString("CidadeCli"));
		Cli_JB.setJB_jTF_CEPcli(conecta_cli.resultset.getString("CEPCli"));
		Cli_JB.setJB_jTF_NomeContato1Cli(conecta_cli.resultset.getString("nomeCont1Cli"));
		Cli_JB.setJB_jTF_DepartCli(conecta_cli.resultset.getString("DepartCont1Cli"));
		Cli_JB.setJB_jTF_TelefoneCli(conecta_cli.resultset.getString("telefoneCont1Cli"));
		Cli_JB.setJB_jTF_Celular1Cli(conecta_cli.resultset.getString("Celular1Cont1Cli"));
		Cli_JB.setJB_jTF_Celular2Cli(conecta_cli.resultset.getString("Celular2Cont1Cli"));
		Cli_JB.setJB_jTF_FaxCli(conecta_cli.resultset.getString("FaxCont1Cli"));
		Cli_JB.setJB_jTF_EmailCli(conecta_cli.resultset.getString("emailCont1Cli"));
		Cli_JB.setJB_jTF_SiteCli(conecta_cli.resultset.getString("SiteCli"));
		Cli_JB.setJB_jTF_NomeContato2Cli(conecta_cli.resultset.getString("nomeCont2Cli"));
		Cli_JB.setJB_jTF_DepartamentoCli(conecta_cli.resultset.getString("DepartCont2Cli"));
		Cli_JB.setJB_jTF_Telefone2Cli(conecta_cli.resultset.getString("telefoneCont2Cli"));
		Cli_JB.setJB_jTF_CelCont2Cli(conecta_cli.resultset.getString("Celular1Cont2Cli"));
		Cli_JB.setJB_jTF_EmailCont2Cli(conecta_cli.resultset.getString("emailCont2Cli"));
		Cli_JB.setJB_jComboBoxUFcliente(conecta_cli.resultset.getString("ufCliente"));
		Cli_JB.setJB_jCB_TipoCliente(conecta_cli.resultset.getString("TipoCli"));
		Cli_JB.setJB_jCB_SexoCli(conecta_cli.resultset.getString("SexoCli"));
	} catch (SQLException erro) {
		JOptionPane.showMessageDialog(null, erro);
	}
}

public void gravar_DAO_Cli(){
try {
String sqlinsert = “insert into cliente (nomeCliente, PessoaCliente, " +
“fantasiaCli, cpfCliente, InscEstadual, InscMunicipal, TipoCli, SexoCli,” +
“EndereçoCli, ComplementoCli, BairroCli, CidadeCli, ufCliente, CEPCli, " +
“nomeCont1Cli,DepartCont1Cli, telefoneCont1Cli, Celular1Cont1Cli, " +
“Celular2Cont1Cli, FaxCont1Cli, emailCont1Cli, siteCli, nomeCont2Cli,” +
“DepartCont2Cli, telefoneCont2Cli, Celular1Cont2Cli, emailCont2Cli) " +
“values (’”+Cli_JB.getJB_JTextFieldNome()+”’,’”+Cli_JB.getJB_jCB_PessoaCliente()+
“’,’”+Cli_JB.getJB_JTF_FantasiaCliente()+”’,’”+Cli_JB.getJB_JTextFieldCPF()+"’,’"+
Cli_JB.getJB_jTF_InscEstadual()+"’,’"+Cli_JB.getJB_jTF_InscMunicipal()+"’,’"+
Cli_JB.getJB_jCB_TipoCliente()+"’,’"+Cli_JB.getJB_jCB_SexoCli()+"’,’"+
Cli_JB.getJB_jTF_EndCliente()+"’,’"+Cli_JB.getJB_jTF_ComplementoCli()+"’,’"+
Cli_JB.getJB_jTF_BairroCli()+"’,’"+Cli_JB.getJB_jTF_CidadeCli()+"’,’"+Cli_JB.getJB_jComboBoxUFcliente()+
“’,’”+Cli_JB.getJB_jTF_CEPcli()+"’,’"+Cli_JB.getJB_jTF_NomeContato1Cli()+"’,’"+Cli_JB.getJB_jTF_DepartCli()+
“’,’”+Cli_JB.getJB_jTF_TelefoneCli()+"’,’"+Cli_JB.getJB_jTF_Celular1Cli()+"’,’"+Cli_JB.getJB_jTF_Celular2Cli()+
“’,’”+Cli_JB.getJB_jTF_FaxCli()+"’,’"+Cli_JB.getJB_jTF_EmailCli()+"’,’"+Cli_JB.getJB_jTF_SiteCli()+"’,’"+
Cli_JB.getJB_jTF_NomeContato2Cli()+"’,’"+Cli_JB.getJB_jTF_DepartamentoCli()+"’,’"+Cli_JB.getJB_jTF_Telefone2Cli()+
“’,’”+Cli_JB.getJB_jTF_CelCont2Cli()+"’,’"+Cli_JB.getJB_jTF_EmailCont2Cli()+"’)";

	conecta_cli.statement.executeUpdate(sqlinsert);

} catch (SQLException e) {
	e.printStackTrace();
}

}

/*
//metodo excluir linha do banco de dados
//pega o valor de codigoCliente(id) da linha selecionada na table e armazena em linhaSelecionada
//variavel sql armazena o codigo do mysql e concatenando a linha selecionada depois de where
//sql é colocado no conecta_cli.statement.executeUpdate da Class conexão
public void excluirCliente() {
try {
int linhaSelecionada = jTableCliCadastrados.getSelectedRow();// pega a linha selecionada
Object valor = jTableCliCadastrados.getModel().getValueAt(linhaSelecionada, 0);

	String sql = "delete FROM cliente WHERE codigoCliente =" + valor+ ";";

	conecta_cli.statement.executeUpdate(sql);
	JOptionPane.showMessageDialog(null, "excluiu");			
} catch (SQLException erro3) {
	JOptionPane.showMessageDialog(null, erro3);
}
cadCliGrf.preencher_JTable();

}
*/

//metodo alterar banco de dados
//sql é colocado no conecta_cli.statement.executeUpdate da Class conexão
//preenchendo cada coluna do banco mysql com o seu campo jtextfield ou jcombobox
public void alterar_DAO_Cli(){
try {
String sql = “UPDATE cliente SET nomeCliente = '”+ Cli_JB.getJB_JTextFieldNome()
+ “’, PessoaCliente = '”+ Cli_JB.getJB_jCB_PessoaCliente()
+ “’, fantasiaCli = '”+ Cli_JB.getJB_JTF_FantasiaCliente()
+ “’, cpfCliente = '”+ Cli_JB.getJB_JTextFieldCPF()
+ “’, InscEstadual = '”+ Cli_JB.getJB_jTF_InscEstadual()
+ “’, InscMunicipal = '”+ Cli_JB.getJB_jTF_InscMunicipal()
+ “’, TipoCli = '”+ Cli_JB.getJB_jCB_TipoCliente()
+ “’, SexoCli = '”+ Cli_JB.getJB_jCB_SexoCli()
+ “’, EndereçoCli = '”+ Cli_JB.getJB_jTF_EndCliente()
+ “’, ComplementoCli = '”+ Cli_JB.getJB_jTF_ComplementoCli()
+ “’, BairroCli = '”+ Cli_JB.getJB_jTF_BairroCli()
+ “’, CidadeCli = '”+ Cli_JB.getJB_jTF_CidadeCli()
+ “’, ufCliente = '”+ Cli_JB.getJB_jComboBoxUFcliente()
+ “’, CEPCli = '”+ Cli_JB.getJB_jTF_CEPcli()
+ “’, nomeCont1Cli = '”+ Cli_JB.getJB_jTF_NomeContato1Cli()
+ “’, DepartCont1Cli = '”+ Cli_JB.getJB_jTF_DepartCli()
+ “’, telefoneCont1Cli = '”+ Cli_JB.getJB_jTF_TelefoneCli()
+ “’, Celular1Cont1Cli = '”+ Cli_JB.getJB_jTF_Celular1Cli()
+ “’, Celular2Cont1Cli = '”+ Cli_JB.getJB_jTF_Celular2Cli()
+ “’, FaxCont1Cli = '”+ Cli_JB.getJB_jTF_FaxCli()
+ “’, emailCont1Cli = '”+ Cli_JB.getJB_jTF_EmailCli()
+ “’, SiteCli = '”+ Cli_JB.getJB_jTF_SiteCli()
+ “’, nomeCont2Cli = '”+ Cli_JB.getJB_jTF_NomeContato2Cli()
+ “’, DepartCont2Cli = '”+ Cli_JB.getJB_jTF_DepartamentoCli()
+ “’, telefoneCont2Cli = '”+ Cli_JB.getJB_jTF_Telefone2Cli()
+ “’, Celular1Cont2Cli = '”+ Cli_JB.getJB_jTF_CelCont2Cli()
+ “’, emailCont2Cli = '”+ Cli_JB.getJB_jTF_EmailCont2Cli()
+ “’ where codigoCliente = “+ Cli_JB.getJB_JTextFieldCodigoCliente()+”;”;

	conecta_cli.statement.executeUpdate(sql);
	JOptionPane.showMessageDialog(null, "gravou");
	
} catch (SQLException erro3) {
	JOptionPane.showMessageDialog(null, erro3);
}

}
}[/code]

public class CadastroClienteGraf extends JFrame { ClientesDAO CliDAO = new ClientesDAO(); // <<--- EEEEERRRRRRRROOO ESTÁ AKI QUANDO INSTANCIO CLIENTESDAO

Ignorem os comentarios do codigo… pois eles foram feitos antes de algumas mudanças no codigo.

Outra observação… é só desabilitar a ultima linha q tudo funciona.

Ninguem consegue me ajudar?

Veja bem seu Stack.

at ClienteJavaBean.(ClienteJavaBean.java:39)
at ClientesDAO.(ClientesDAO.java:9)
at CadastroClienteGraf.(CadastroClienteGraf.java:110)
at ClienteJavaBean.(ClienteJavaBean.java:39)
at ClientesDAO.(ClientesDAO.java:9)
at CadastroClienteGraf.(CadastroClienteGraf.java:110)
at ClienteJavaBean.(ClienteJavaBean.java:39)
at ClientesDAO.(ClientesDAO.java:9)
at CadastroClienteGraf.(CadastroClienteGraf.java:110)

Vc caiu numa recursao… Seu Dao chama o Bean que chama o ClienteGraf que chama o Dao e ai vai…

Hum… intendi! Isso realmente está acontecendo… vlw