En Java SE 17, la encapsulación de Java se aumentó mediante la eliminación del distintivo --illegal-access. Además de ocultar los valores internos de JDK, esto también impide que un módulo acceda a los tipos de otro módulo que no se exportan.
Esto puede provocar problemas con la serialización de IIOP para los parámetros y los valores de retorno para las llamadas de método en los EJB remotos ya que se debe poder acceder a los valores de campo y método privados.
Los problemas debidos a este cambio aparecerán generalmente como una excepción java.rmi.MarshalException genérica.
Para solucionar cualquier problema, deberá abrir los módulos necesarios en el cliente o el servidor donde se produce la anomalía. De forma predeterminada, Liberty abre varios módulos utilizados habitualmente. Para ver los módulos ya abiertos por Liberty, consulte el archivo wlp/lib/platform/java/java9.options. Las sentencias abiertas adicionales se deben añadir al archivo jvm.options. Por ejemplo:
--add-opens
java.base/java.lang=ALL-UNNAMED
Para obtener más información sobre estos cambios, consulte JEP 403: Encapsular fuertemente valores internos de JDK.