În Java SE 17, încapsularea Java a fost mărită prin înlăturarea
stegulețului --illegal-access. În plus față de ascunderea internilor
JDK, acest lucru oprește, de asemenea accesul unui modul la tipurile care nu sunt exportate ale altui modul.
Acest lucru poate cauza probleme cu serializarea IIOP pentru parametrii și valorile de
returnare pentru apelurile de metodă pe EJB-uri la distanță, deoarece trebuie accesate valori de metodă și de câmp privat.
Problemele datorate acestei modificări vor apărea în general ca o excepție generică java.rmi.MarshalException.
Pentru a rezolva oricare problemă, va trebui să deschideți orice modul necesar pe clientul sau pe serverul
unde apare eșecul. În mod implicit, Liberty deschide mai multe module utilizate în mod obișnuit.
Pentru a vedea modulele deja deschise de Liberty, căutați în fișierul wlp/lib/platform/java/java9.options.
Orice instrucțiuni suplimentare de deschidere trebuie adăugate în fișierul jvm.options. De exemplu:
--add-opens
java.base/java.lang=ALL-UNNAMED
Pentru mai multe informaţii despre aceste modificări, vedeţi JEP 403: Strogly Encapsulate JDK Internals.