Java 11 pacote javax.xml.bind não existe

Boris:

Eu estou tentando desserializar dados XML em uma árvore de conteúdo Java usando JAXB , validar os dados XML como é unmarshalled:

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();
}

Quando eu construir o projeto com Java 8 Está tudo bem, mas construí-la com Java 11 falha com um erro de compilação:

package javax.xml.bind does not exist

Como faço para corrigir o problema?

Boris:

De acordo com as release-notes , Java 11 removidos os módulos Java EE:

java.xml.bind (JAXB) - REMOVED
  • Java 8 - OK
  • Java 9 - DEPRECADO
  • Java 10 - DEPRECADO
  • Java 11 - REMOVIDO

Veja PEC 320 para mais informações.

Você pode corrigir o problema usando versões alternativas das tecnologias Java EE. Basta adicionar as dependências do Maven que contêm as classes que você precisa:

<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>

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=37325&siteId=1
Recomendado
Clasificación