尝试启动 WildFly 10 导致 InitationTargetException

问题描述 投票:0回答:1

我正在尝试使用

standalone.bat
文件启动 WildFly 10.1.0.Final 服务器。但是,当它启动时,它会抛出异常。

这是堆栈跟踪:

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

我尝试将 JAVA_OPTS 设置为其中每一个(单独):

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

使用其中任何一个都会抛出

ExceptionInInitializerError
,这是由
Unable to make protected java.lang.Package java.lang.ClassLoader.getPackage(java.lang.String) accessible
引起的。

我也尝试过启动

standalone.sh
,但这只是打开一个 GitBash 窗口,然后立即关闭。

我想要发生的就是服务器启动,这是我第一次尝试运行服务器。

java wildfly wildfly-10 java-21
1个回答
0
投票

我设法通过切换到 Java 8 来修复它!我使用的是 Java 21,这导致了问题。

有人已经解释了为什么会发生这种情况这里

© www.soinside.com 2019 - 2024. All rights reserved.