[RESOLVIDO]como carregar as classes que estão dentro da pasta lib em um JAR

1 resposta
arthurminarini

pessoal. tenha um projeto com suas classes. exemplo : pacote.validador.pojo, fiz um jar dela e em outra aplicação (aplicationweb também) tenho pacote.seguranca.pojo e estou usando o jar da outra aplicação,até ai tudo bem. quando no meu hibernate util passa por esse metodo

//esse funciona pq é o pacote da aplicação atual

for (Class clazz : new HibernateUtil().getClasses("pacote.seguranca.pojo")) {
                configuration.addAnnotatedClass(clazz);
            }

mas se eu tentar carregar os pojos do jar não carrega pq?

for (Class clazz : new HibernateUtil().getClasses("pacote.validador.pojo")) {
                configuration.addAnnotatedClass(clazz);
            }
public List<Class> getClasses(String pckgname) throws ClassNotFoundException {
        List<Class> classes = new ArrayList<Class>();
        ClassLoader cld = Thread.currentThread().getContextClassLoader();
        String path = pckgname.replace('.', '/');
        URL resource = cld.getResource(path);
        File directory = new File(resource.getFile());
        if (directory.exists()) {
            String[] files = directory.list();
            for (int i = 0; i < files.length; i++) {
                if (files[i].endsWith(".class")) {
                    classes.add(Class.forName(pckgname + '.' + files[i].substring(0, files[i].length() - 6)));
                }
            }
        }
        return classes;
    }

se eu colocar na “mão” funciona

configuration.addAnnotatedClass(pacote.validador.pojo.Coligada.class);
            configuration.addAnnotatedClass(pacote.validador.pojo.Menu.class);
            configuration.addAnnotatedClass(pacote.validador.pojo.PerUsuario.class);

queria algo automatico que não precisasse de ficar incluindo sempre na classe dipo o for citado acima

pelo que percebi quando o meto do tentar buscar a pasta validador ela realmente não existe pois esta dentro de um jar e não fisicamente em um diretorio na aplicação como posso burlar isso?

outra coisa, pesquisei muito na net e achei muita coisa sobre getResourceAsStream() só que todos os exemplo foi com recursos usados dentro das pastas da aplicação. O meu problema é que é um jar e esta do diretorio lib dentro de WEB-INF ai fica dificil pegar ele la. alguem tem uma ajudinha ai? :cry: :cry: :cry:

1 Resposta

arthurminarini

resolvi aqui. fiz um scanner de classes e jogo para o add com forname

Criado 7 de maio de 2009
Ultima resposta 13 de mai. de 2009
Respostas 1
Participantes 1