首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以在新的jdk17上运行Wildfly 10吗

可以在新的jdk17上运行Wildfly 10吗
EN

Stack Overflow用户
提问于 2021-11-26 20:03:56
回答 2查看 414关注 0票数 0

我们正在使用Wildfly 10.0.1,并将切换到jdk17 LTS。我刚刚在我的mac上安装了一个新的jdk,并下载了Wildfly 10.0.1的干净版本(没有部署,没有配置更改等等)。当我试图运行Wildfly (./standalone.sh)时,我得到了以下错误:

代码语言:javascript
复制
./standalone.sh

警告: JBOSS_HOME可能指向不同的安装-可能会出现不可预知的结果。

代码语言:javascript
复制
         JBOSS_HOME: /opt/wildfly_clean

=========================================================================

JBoss引导程序环境

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

=========================================================================

未能实例化提供程序com.sun.xml.internal.stream.XMLInputFactoryImpl :无法实例化线程"main“javax.xml.stream.FactoryConfigurationError中的异常:在java.xml/javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:148)处的java.xml/javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:201)处的java.lang.reflect.InvocationTargetException在java.xml/javax.xml.stream.FactoryFinder.find(FactoryFinder.java:处的java.xml/javax.xml.stream.FactoryFinder.find(FactoryFinder.java:326)处223)在java.xml/javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:166) at __redirected.__XMLInputFactory.(__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.java:119)在org.jboss.modules.Main.main(Main.java:385)由:在java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native方法处的java.lang.reflect.InvocationTargetException )在java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)处的java.lang.reflect.InvocationTargetException在java处引起。java.xml/javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:190)处的base/java.lang.reflect.Constructor.newInstance(Constructor.java:480) ... 11更多原因:无法实例化java.xml/javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:199)处的java.xml/javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:147)处的javax.xml.parsers.FactoryConfigurationError: Provider __redirected.__SAXParserFactory : java处的java.lang.reflect.InvocationTargetException.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.(JdkXmlUtils.java:89) at java.xml/com.sun.org.apache.xerces.internal.impl.PropertyManager.initConfigurableReaderProperties(PropertyManager.java:144) at java.xml/com.sun.orgjava.xml/com.sun.xml.internal.stream.XMLInputFactoryImpl.(XMLInputFactoryImpl.java:51)的.apache.xerces.internal.impl.PropertyManager.(PropertyManager.java:78) ... 17更多原因: java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native方法的java.lang.reflect.InvocationTargetException ) java的java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)的java.lang.reflect.InvocationTargetException.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更多原因: com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl :类__redirected.__SAXParserFactory无法访问类java.xml (在模块java.xml中),因为模块java.xml不能导出com.sun将未命名的模块@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.(__SAXParserFactory.java:106)发送到.org.apache.xerces.internal.jaxp ... 31更多信息

在inet中没有太多关于它的信息。所以,我的问题是,这个错误意味着什么,是否可以执行commething (更改JAVA_OPTS等)以在JDK17上成功运行wildfly。

有没有可能在jdk17上运行Wildfly 10?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2021-11-27 17:23:26

尝试使用以下配置

代码语言:javascript
复制
  --add-opens java.xml/jdk.xml.internal=ALL-UNNAMED

这将打开此模块以供外部访问。

原因是

根据JDK9 doc的说法

一些工具和库使用反射来访问仅供内部使用的部分。此非法反射访问将在JDK的未来版本中禁用。在JDK 9中,默认情况下是允许的,并且会发出警告。

然而,随着JEP 396的出现,这一点发生了变化,JEP 396包含在JDK 17中,最初是从JDK 16提供的

https://openjdk.java.net/jeps/396

因此,从JDK16开始,默认情况下所有java内部都是强封装的,并且不允许从反射进行外部访问。因此,您看到的错误

票数 1
EN

Stack Overflow用户

发布于 2021-11-29 15:35:38

感谢你们给我指引方向。我能够在jdk 17 LTS中运行Wildfly 10,并在启动shell脚本中添加以下选项:

JAVA_OPTS="$JAVA_OPTS --添加-打开java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED“

JAVA_OPTS="$JAVA_OPTS --添加-打开java.base/java.lang=ALL-UNNAMED“

JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.security=ALL-UNNAMED“

以下是运行脚本的输出:

代码语言:javascript
复制
./standalone.sh

警告: JBOSS_HOME可能指向不同的安装-可能会出现不可预知的结果。

代码语言:javascript
复制
         JBOSS_HOME: /opt/wildfly_clean

=========================================================================

JBoss引导程序环境

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 --添加-打开java.base--添加-打开java.base/java.lang=-server-未命名的java.base

=========================================================================

.10:34:36,425 INFO org.jboss.as WFLYSRV0025: WildFly Full 10.1.0 Full (WildFly核心2.2.0 Full)启动时间为1339ms -启动了577个服务中的331个(393个服务是惰性的、被动的或按需的)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70129530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档