Moduły java.xml.bind i java.activation zostały usunięte z pakietu JDK 11 (implementacja niestandardowa)

Zadanie java.xml.bind oraz java.activation zostały usunięte z JDK 11. Te moduły zawierały następujące pakiety:

Ta reguła oznacza aplikacje, w których używany jest dowolny z powyższych pakietów, a implementacja JAXB została umieszczona wraz z aplikacją w jednym pakiecie. Wcześniej implementacja JAXB mogła zakładać, że podane wcześniej interfejsy API są dostępne w pakiecie JDK. Jednak począwszy od pakietu JDK 11 te interfejsy API nie są już dostępne.

Jeśli implementacja JAXB została umieszczona wraz z aplikacją w jednym pakiecie, należy zaktualizować tę implementację, używając wersji kompatybilnej ze środowiskiem Java 11, która uwzględnia usunięte interfejsy API i implementację.

Innym rozwiązaniem jest przejście na domyślną implementację JAXB serwera Liberty. Można to zrobić poprzez dodanie jaxb-2.2 do funkcji Liberty server.xml . Ponadto wszystkie implementacje JAXB umieszczone wraz z aplikacją w jednym pakiecie muszą zostać usunięte, aby uniknąć wystąpienia problemów z ładowaniem klas.

Zadanie schemagen i xjc zostały również usunięte z JDK 11. Narzędzia te są dostępne w Liberty bin/jaxb w katalogu instalacji Liberty.

Automatyczna poprawka dostarczona przez ogólną zasadę Java SE 11 aktualizujejavax.xml.bind oraz javax.activationmoduły w zależnościach aplikacji, aby zapewnić że nie są one spakowane w aplikacji. W większości przypadków ta poprawka rozwiąże ten problem i zapobiegnie problemom z ładowaniem klas. Skopiuj konfigurację niestandardową do pliku budowania aplikacji, aby włączyć automatyzację poprawek.

Więcej informacji na temat zmian wprowadzonych w pakiecie JDK 11 zawiera publikacja Removal of Java EE and CORBA Modules (Usunięcie modułów Java EE i CORBA).