Chamadas de EJB remotas podem falhar no Java SE 17

No Java SE 17, o encapsulamento de Java foi aumentado por meio da sinalização --ilegal-access. Além de ocultar componentes internos do JDK, isso também impede um módulo de acessar tipos de outro módulo que não são exportados. Isso pode causar problemas com a serialização IIOP para os parâmetros e valores de retorno para chamadas de método em EJBs remotas, pois o campo privado e os valores do método devem ser acessados.

Problemas devido a esta mudança geralmente aparecerão como um java.rmi.MarshalExceptiongenérico.

Para corrigir quaisquer problemas, será necessário abrir quaisquer módulos necessários no cliente ou servidor onde a falha ocorrer. Por padrão, o Liberty abre vários módulos comumente usados. Para ver os módulos já abertos pelo Liberty, consulte o arquivo wlp/lib/platform/java/java9.options. Quaisquer instruções abertas adicionais devem ser incluídas no arquivo jvm.options. Por exemplo:

--add-opens
java.base/java.lang=ALL-UNNAMED

Para obter mais informações sobre essas mudanças, consulte JEP 403: Componentes internos do JDK fortemente encapsulados.