[RESOLVIDO]Problema ao gerar runnable jar

2 respostas
J

Boa tarde.

Estou com um problema em um sistema da empresa, estamos atualizando nossa persistencia, estavamos usando Hibernate puro na versão 3 e agora estamos migrando para a versão 5.1 com jpa. quando usavamos hibernate puro o arquivo xml de configuração ficava direto dentro do src e estava rodando sem problemas.
Agora criamos o arquivo persistence.xml dentro da pasta meta-inf, no eclipse o projeto roda sem nenhum problema, porém ao gerar o runnable jar da aplicação acontece um problema ao tentar abrir uma conexão com o banco, é como se o arquivo de configuração não fosse encontrado dentro da pasta meta-inf, segue a exception:

Exception in thread main java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)

Caused by: javax.persistence.PersistenceException: Unable to locate persistence units

at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:84)

at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:71)

at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:52)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)

at br.com.serversocket.util.PersistenceUtil.getEntityManagerFactory(PersistenceUtil.java:42)

at br.com.serversocket.util.PersistenceUtil.openSession(PersistenceUtil.java:56)

at br.com.serversocket.main.Main.main(Main.java:38)

 5 more

Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1

at java.lang.String.substring(String.java:1911)

at org.hibernate.boot.archive.internal.ArchiveHelper.getJarURLFromURLEntry(ArchiveHelper.java:45)

at org.hibernate.jpa.boot.internal.PersistenceXmlParser.parsePersistenceXml(PersistenceXmlParser.java:105)

at org.hibernate.jpa.boot.internal.PersistenceXmlParser.doResolve(PersistenceXmlParser.java:84)

at org.hibernate.jpa.boot.internal.PersistenceXmlParser.locatePersistenceUnits(PersistenceXmlParser.java:66)

at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:80)

 12 more

2 Respostas

M

como está nomeada sua pasta meta inf?.

Poderia mandar sua estrutura de diretórios.

J

Bom dia, acabei de descobrir o problema, era a versão do javassist que estava incompativel com a versão do hibernate que estavamos testeando, estavamos com a versão 3.9.0 e passamos para a 3.20, agora próximo passo é pressionar para passarmos a utilizar um maven, gradle ou qualquer outro para gerenciar a versão das libraries que utilizamos.
Obrigado.

Criado 16 de novembro de 2017
Ultima resposta 17 de nov. de 2017
Respostas 2
Participantes 2