java jaxb java-11

El paquete javax.xml.bind de Java 11 no existe



jaxb java-11 (1)

De acuerdo con las release-notes la release-notes , Java 11 eliminó los módulos de Java EE:

java.xml.bind (JAXB) - REMOVED

  • Java 8 - OK
  • Java 9 - DEPRECATED
  • Java 10 - DEPRECATED
  • Java 11 - QUITADO

Ver JEP 320 para más información.

Puede solucionar el problema utilizando versiones alternativas de las tecnologías Java EE. Simplemente agregue las dependencias de Maven que contienen las clases que necesita:

<dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-core</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.3.0</version> </dependency>

Estoy tratando de deserializar los datos XML en un árbol de contenido de Java utilizando JAXB , validando los datos XML como no están mal:

try { JAXBContext context = JAXBContext.newInstance("com.acme.foo"); Unmarshaller unmarshaller = context.createUnmarshaller(); unmarshaller.setSchema(schema); FooObject fooObj = (FooObject) unmarshaller.unmarshal(new File("foo.xml")); } catch (UnmarshalException ex) { ex.printStackTrace(); } catch (JAXBException ex) { ex.printStackTrace(); }

Cuando compilo el proyecto con Java 8 está bien, pero construirlo con Java 11 falla con un error de compilación:

package javax.xml.bind does not exist

¿Cómo soluciono el problema?