Deployment, Java

Sofrência com Java 9: cadê meu JAXB?

Cara, cadê meu JAXB?
– Hein?

Pô, cara, tava empolgadão aqui com o JDK 9. Atualizei e tal. Aí tentei subir uma aplicação no Tomcat e outra no Jetty e recebi isso na cara:

org.springframework.beans.factory.BeanCreationException: 
  Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/spring-context.xml]: 
  Invocation of init method failed; 
    nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1589)
	...
Caused by: 
  java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
  at org.hibernate.boot.spi.XmlMappingBinderAccess.(XmlMappingBinderAccess.java:43)

– Tô ligado. O famoso NoClassDefFoundError de JAXBException no Java 9.

Não subiu por causa do JAXB? Ué, aquela biblioteca de serialização Java/XML? Mas eu nem uso nos meus projetos…
– Você não usa, mas alguma dependência pode usar. O Hibernate, no caso.

E o JAXB não vem nas libs padrão do JRE?
– Vem, inclusive no JRE 9.

Uai… Por que o erro, então?
– É que o JAXB tá nas libs padrão, mas não fica disponível… Aí, o Hibernate vai usar e: BAM!

Continue lendo

Anúncios