Description
If you are using JDK11, you may receive the following error:
WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.liferay.petra.reflect.ReflectionUtil (file:/Users/malei/dev/project/bundles/master-bundles/tomcat-9.0.10/lib/ext/com.liferay.petra.reflect.jar) to field java.lang.reflect.Field.modifiers WARNING: Please consider reporting this to the maintainers of com.liferay.petra.reflect.ReflectionUtil WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release
Resolution
This error occurs because JDK11 was recently added to the compatibility matrix. The following are workarounds for the Tomcat and Wildfly app servers
If you are using JDK11, Linux, and LCS for activation please see the Inaccessible Object Exception known issue article.
Tomcat
Add these properties to Tomcat (e.g. tomcat/bin/setenv.sh) to avoid illegal access warning messages:
CATALINA_OPTS="$CATALINA_OPTS --add-opens=java.base/java.io=ALL-UNNAMED" CATALINA_OPTS="$CATALINA_OPTS --add-opens=java.base/java.lang.reflect=ALL-UNNAMED" CATALINA_OPTS="$CATALINA_OPTS --add-opens=java.base/java.lang=ALL-UNNAMED" CATALINA_OPTS="$CATALINA_OPTS --add-opens=java.base/java.net=ALL-UNNAMED" CATALINA_OPTS="$CATALINA_OPTS --add-opens=java.base/java.nio=ALL-UNNAMED" CATALINA_OPTS="$CATALINA_OPTS --add-opens=java.base/java.text=ALL-UNNAMED" CATALINA_OPTS="$CATALINA_OPTS --add-opens=java.base/java.util=ALL-UNNAMED" CATALINA_OPTS="$CATALINA_OPTS --add-opens=java.base/sun.nio.ch=ALL-UNNAMED" CATALINA_OPTS="$CATALINA_OPTS --add-opens=java.desktop/java.awt.font=ALL-UNNAMED" CATALINA_OPTS="$CATALINA_OPTS --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED" CATALINA_OPTS="$CATALINA_OPTS --add-opens=java.xml/com.sun.org.apache.xerces.internal.parsers=ALL-UNNAMED"
Wildfly
Add these properties to Wildfly (e.g. wildfly/bin/standalone.conf) to avoid illegal access warning messages:
JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.io=ALL-UNNAMED" JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.lang.reflect=ALL-UNNAMED" JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.lang=ALL-UNNAMED" JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.net=ALL-UNNAMED" JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.nio=ALL-UNNAMED" JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.security=ALL-UNNAMED" JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.text=ALL-UNNAMED" JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.util=ALL-UNNAMED" JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/sun.nio.ch=ALL-UNNAMED" JAVA_OPTS="$JAVA_OPTS --add-opens=java.desktop/java.awt.font=ALL-UNNAMED" JAVA_OPTS="$JAVA_OPTS --add-opens=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED"