Problema com método main

Bom, tenho o seguinte código:

import dao.AlunoDAO;
import dao.DAOFactory;

public class Teste {
    public static void main(String[] args) {
        DAOFactory base = DAOFactory.getInstance("javabase");
        System.out.println("consegui pegar o factory");

        AlunoDAO aluno = base.getAlunoDAO();
        System.out.println("pegou o alunoDAo");
    }
}

só que quando mando rodar, aparece essa exceção:

Exception in thread "main" java.lang.NoSuchMethodError: dao.DAOFactory.getAlunoDAO()Ldao/AlunoDAO;
        at Teste.main(Teste.java:9)

Procurei em um monte de lugar e todos falam que é pq não existe método main, bom no meu caso, ele está aí…alguém sabe como resolver isso?

Obrigado.

Na verdade a mensagem de erro diz que ocorreu uma exceção no método main.
O método que não foi encontrado foi o dao.DAOFactory.getAlunoDAO() e não o main.

[quote=Cristiano de Barros]Na verdade a mensagem de erro diz que ocorreu uma exceção no método main.
O método que não foi encontrado foi o dao.DAOFactory.getAlunoDAO() e não o main.[/quote]

Então, o método existe, tá aí:

package dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public final class DAOFactory {

    private static final String PROPERTY_URL = "url";
    private static final String PROPERTY_DRIVER = "driver";
    private static final String PROPERTY_USERNAME = "username";
    private static final String PROPERTY_PASSWORD = "password";
    private static final Map<String, DAOFactory> INSTANCES = new HashMap<String, DAOFactory>();

    private String url;
    private String username;
    private String password;
    private DataSource dataSource;

    private DAOFactory(String name) throws DAOConfigurationException {
        DAOProperties properties = new DAOProperties(name);
        this.url = properties.getProperty(PROPERTY_URL, true);
        String driverClassName = properties.getProperty(PROPERTY_DRIVER, false);
        this.password = properties.getProperty(PROPERTY_PASSWORD, false);
        this.username = properties.getProperty(PROPERTY_USERNAME, this.password != null);

        if (driverClassName != null) {
            // If driver is specified, then load it and let it register itself with DriverManager.
            try {
                Class.forName(driverClassName);
            } catch (ClassNotFoundException e) {
                throw new DAOConfigurationException(
                    "Classe driver '" + driverClassName + "' não encontrada no classpath.", e);
            }
        } else {
            // Else assume URL as DataSource URL and lookup it in the JNDI.
            try {
                dataSource = (DataSource) new InitialContext().lookup(url);
            } catch (NamingException e) {
                throw new DAOConfigurationException(
                    "DataSource '" + url + "' não encontrada no JNDI.", e);
            }
        }
    }

    public static DAOFactory getInstance(String name) throws DAOConfigurationException {
        if (name == null) {
            throw new DAOConfigurationException("Nome da base de dados é nulo.");
        }
        DAOFactory instance = INSTANCES.get(name);
        if (instance == null) {
            instance = new DAOFactory(name);
            INSTANCES.put(name, instance);
        }
        return instance;
    }

    Connection getConnection() throws SQLException {
        if (dataSource != null) {
            if (username != null) {
                return dataSource.getConnection(username, password);
            } else {
                return dataSource.getConnection();
            }
        } else {
            return DriverManager.getConnection(url, username, password);
        }
    }

    public AlunoDAO getAlunoDAO() {
        return new AlunoDAO(this);
    }

    // Você pode adicionar mais getters para DAOs aqui.

}

Bom, resolvi o problema. Tinha um .jar adicionado como biblioteca e o compilador buscava o método nele, onde não existia. Excluí ele e funcionou.

Valeu.