W wersji Java SE 17 hermetyzacja środowiska Java została wzmocniona poprzez usunięcie flagi --illegal-access flag. Oprócz ukrywania wewnętrznej struktury pakietu JDK ta zmiana uniemożliwia także modułom dostęp do niewyeksportowanych typów innych modułów.
Może to powodować problemy z serializacją IIOP dla parametrów i wartości zwracanych z wywołań metod w zdalnych komponentach EJB, ponieważ wymagają one dostępu do pól i metod prywatnych.
Problemy związane z tą zmianą będą zwykle zgłaszane jako ogólny wyjątek java.rmi.MarshalException.
W celu rozwiązania ewentualnych problemów konieczne będzie otwarcie wszystkich wymaganych modułów na kliencie lub na serwerze, na którym wystąpiło niepowodzenie. Domyślnie serwer Liberty otwiera kilka powszechnie używanych modułów. Aby wyświetlić moduły, które zostały już otwarte przez Liberty, należy przejrzeć plik wlp/lib/platform/java/java9.options. Wszelkie dodatkowe instrukcje open należy dodać do pliku jvm.options. Na przykład:
--add-opens
java.base/java.lang=ALL-UNNAMED
Więcej informacji na temat tych zmian zawiera sekcja JEP 403: Zdecydowanie Encapsulate JDK Internals.