Search code examples
javawildflywildfly-10java-21

Attempting to start WildFly 10 causing a InvocationTargetException


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.


Solution

  • 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.