I propose to add in Configuration class in hibernate :
class Configuration ... { ... public Configuration addPar(File par) throws MappingException { log.info("Searching for mapping documents in par: " + par.getName()); JarFile parFile = null; try { try { parFile = new JarFile(par); } catch (IOException ioe) { throw new MappingException("Could not read mapping documents from jar: " + par.getName(), ioe); } Enumeration jarEntries = parFile.entries(); do { if (!jarEntries.hasMoreElements()) break; ZipEntry ze = (ZipEntry) jarEntries.nextElement(); if (ze.getName().endsWith(".class")) { try { String classname = ze.getName(); classname = classname.substring(0, classname.length() - 6) .replace('/', '.'); log.info("Found class in jar: " + classname); addClass(Class.forName(classname)); } catch (Exception e) { throw new MappingException( "Could not read mapping class from par: " + par.getName(), e); } } } while (true); } finally { try { if (parFile != null) parFile.close(); } catch (IOException ioe) { log.error("could not close jar", ioe); } } return this; } ... }
Add it on Ejb3Configuration rather than Configuration