Exception ao instanciar o construtor de uma classe

4 respostas
D

Bom Dia pessoal…

Estou precisando da ajuda de vocês,

Na minha aplicação o acesso ao banco de dados é através do padrão DAO. No metodo onde está ocorrendo o erro, recebe o nome da interface e através deste pega a classe que a implementa. Apos isto ele tenta criar a instancia da classe. Quando ele executa a linha ( Constructor constructor = clazz.getConstructor(parTypes); ) levanta uma excessao. Veja os codigos abaixo.

public Object getDAO(final String whichDAO) {
		Object dao = null;
		String className = daoNames.getProperty(whichDAO);
		if(className == null || className.equals("")) {
			try {
				throw new Exception("O DAO " + whichDAO + " não está mapeado no arquivo mysqlDAO.xml");
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		try {
			Class clazz = Class.forName(className);
			Class[] parTypes = new Class[1];
			parTypes[0] = Connection.class;
			Constructor constructor = clazz.getConstructor(parTypes);
			Object argList[] = new Object[1];
			argList[0] = getConnection();
			dao = constructor.newInstance(argList);
		} catch (Exception ex) {
			try {
				throw new Exception("Não foi possível obter a conexão: " + ex);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return dao;
	}
java.lang.Exception: Não foi possível obter a conexão: java.lang.NoSuchMethodException: br.com.normas.dao.UsuarioDAOBanco.<init>(java.sql.Connection)
	at br.com.normas.dao.NormasDAOFactory.getDAO(NormasDAOFactory.java:46)
	at br.com.normas.main.Main.main(Main.java:11)
java.lang.NullPointerException

Alguem poderia me ajudar??

att Daniel

4 Respostas

psandrelli

Sua classe Connection deve estar nula.

Tenta fazer algo como isso pra ver se funciona.

Connection con = DriverManager.getConnection(url,"","");

e passa para dentro de seu vetor.

peczenyj

Ops.

D

A exceção era levantanda porque na minha classe que implementa a interface não tinha o construtor declarado.

Obrigado pela dica psandrelli

att Daniel

psandrelli

All right, daniel.miranda.

Criado 8 de janeiro de 2008
Ultima resposta 8 de jan. de 2008
Respostas 4
Participantes 3