We are using Wildfly 10.0.1 and planning to switch to JDK 17 LTS.
I've just installed a new JDK on my Mac and downloaded a clean version of Wildfly 10.0.1 (no deployments, no config changes, and so on).
When I try running Wildfly (./standalone.sh), I am getting the following error:
./standalone.sh
WARNING: JBOSS_HOME may be pointing to a different installation - unpredictable results may occur.
JBOSS_HOME: /opt/wildfly_clean
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /opt/wildfly_clean
JAVA: /Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home/bin/java
JAVA_OPTS: -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true
=========================================================================
Exception in thread "main" javax.xml.stream.FactoryConfigurationError: Provider com.sun.xml.internal.stream.XMLInputFactoryImpl could not be instantiated: java.lang.reflect.InvocationTargetException
at java.xml/javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:201)
at java.xml/javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:148)
at java.xml/javax.xml.stream.FactoryFinder.find(FactoryFinder.java:326)
at java.xml/javax.xml.stream.FactoryFinder.find(FactoryFinder.java:223)
at java.xml/javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:166)
at __redirected.__XMLInputFactory.<clinit>(__XMLInputFactory.java:66)
at __redirected.__JAXPRedirected.initAll(__JAXPRedirected.java:77)
at org.jboss.modules.Module$1.run(Module.java:132)
at org.jboss.modules.Module$1.run(Module.java:119)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at org.jboss.modules.Module.<clinit>(Module.java:119)
at org.jboss.modules.Main.main(Main.java:385)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at java.xml/javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:190)
... 11 more
Caused by: javax.xml.parsers.FactoryConfigurationError: Provider __redirected.__SAXParserFactory could not be instantiated: java.lang.reflect.InvocationTargetException
at java.xml/javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:199)
at java.xml/javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:147)
at java.xml/javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:227)
at java.xml/javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:181)
at java.xml/jdk.xml.internal.JdkXmlUtils.getSAXFactory(JdkXmlUtils.java:352)
at java.xml/jdk.xml.internal.JdkXmlUtils.<clinit>(JdkXmlUtils.java:89)
at java.xml/com.sun.org.apache.xerces.internal.impl.PropertyManager.initConfigurableReaderProperties(PropertyManager.java:144)
at java.xml/com.sun.org.apache.xerces.internal.impl.PropertyManager.<init>(PropertyManager.java:78)
at java.xml/com.sun.xml.internal.stream.XMLInputFactoryImpl.<init>(XMLInputFactoryImpl.java:51)
... 17 more
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at java.xml/javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:188)
... 25 more
Caused by: java.lang.IllegalAccessError: class __redirected.__SAXParserFactory cannot access class com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl (in module java.xml) because module java.xml does not export com.sun.org.apache.xerces.internal.jaxp to unnamed module @2b05039f
at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:392)
at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:674)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:489)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at __redirected.__SAXParserFactory.<init>(__SAXParserFactory.java:106)
... 31 more
There is not much information about it on iNet.
So, my question is what do the errors mean? Is it possible to do something (change JAVA_OPTS, etc) to run Wildfly successfully on JDK 17.
Is it possible at all to run Wildfly 10 on JDK 17?
Thank you.
Try using the following configuration:
Which opens this module for external access.
The reason for that, according to the JDK9 doc, is ...
This has changed though with JEP 396 which was included in JDK 17 and was originaly delivered from JDK 16.
So from JDK 16 and onwards, all Java internals are by default strongly encapsulated, and no external access is allowed from reflection.