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?
