I am attempting to start a WildFly 10.1.0.Final server using the standalone.bat
file. However, when it starts it throws an exception.
Here is the stack trace:
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:188)
at java.xml/javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:135)
at java.xml/javax.xml.stream.FactoryFinder.find(FactoryFinder.java:280)
at java.xml/javax.xml.stream.FactoryFinder.find(FactoryFinder.java:210)
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:319)
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.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:74)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at java.xml/javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:177)
... 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:186)
at java.xml/javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:134)
at java.xml/javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:214)
at java.xml/javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:181)
at java.xml/jdk.xml.internal.JdkXmlUtils.getSAXFactory(JdkXmlUtils.java:351)
at java.xml/jdk.xml.internal.JdkXmlUtils.<clinit>(JdkXmlUtils.java:88)
at java.xml/com.sun.org.apache.xerces.internal.impl.PropertyManager.initConfigurableReaderProperties(PropertyManager.java:150)
at java.xml/com.sun.org.apache.xerces.internal.impl.PropertyManager.<init>(PropertyManager.java:83)
at java.xml/com.sun.xml.internal.stream.XMLInputFactoryImpl.<init>(XMLInputFactoryImpl.java:51)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
... 14 more
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:74)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at java.xml/javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:175)
... 23 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 @3d012ddd
at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:394)
at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:714)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:495)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at __redirected.__SAXParserFactory.<init>(__SAXParserFactory.java:106)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
... 26 more
I have attempted to set JAVA_OPTS to each of these (separately):
set JAVA_OPTS=--add-opens=java.base/java.lang=ALL-UNNAMED
set JAVA_OPTS=--add-opens=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED
set JAVA_OPTS=--add-opens=java.base/java.security=ALL-UNNAMED
Using any of those throws a ExceptionInInitializerError
, which is caused by an Unable to make protected java.lang.Package java.lang.ClassLoader.getPackage(java.lang.String) accessible
.
I have also tried starting standalone.sh
, but this just opens a GitBash window and then closes immediately.
All that I want to happen is for the server to start, this is the very first time I have attempted to run the server.
I managed to fix it by switching to Java 8! I was using Java 21 which was causing issues.
Someone has already explained why this happens here.