Java Can';t在Wildfly(JBOSS)上加载类sun.net.dns.ResolverConfiguration

Java Can';t在Wildfly(JBOSS)上加载类sun.net.dns.ResolverConfiguration,java,websphere,wildfly,wildfly-10,Java,Websphere,Wildfly,Wildfly 10,下面的Java代码在一个基本的主类示例上运行良好。太好了 但是,当它部署在Wildfly(10.0.0)应用程序服务器上时,找不到提到的类,并引发异常。 我已经在另一个应用服务器上进行了测试,比如IBMWebSphere应用程序(8.0和9.0),它也可以工作 有人知道为什么这会发生在Wildfly上吗 代码: String resConfName = "sun.net.dns.ResolverConfiguration"; Class resConfClass = Class.forName

下面的Java代码在一个基本的主类示例上运行良好。太好了

但是,当它部署在Wildfly(10.0.0)应用程序服务器上时,找不到提到的类,并引发异常。 我已经在另一个应用服务器上进行了测试,比如IBMWebSphere应用程序(8.0和9.0),它也可以工作

有人知道为什么这会发生在Wildfly上吗


代码:

String resConfName = "sun.net.dns.ResolverConfiguration";
Class resConfClass = Class.forName(resConfName);
java.lang.ClassNotFoundException: sun.net.dns.ResolverConfiguration from [Module "deployment.myApp.ear.myApp.war:main" from Service Module Loader]

例外情况:

String resConfName = "sun.net.dns.ResolverConfiguration";
Class resConfClass = Class.forName(resConfName);
java.lang.ClassNotFoundException: sun.net.dns.ResolverConfiguration from [Module "deployment.myApp.ear.myApp.war:main" from Service Module Loader]

我的野生苍蝇环境:(悲伤的脸)

  • Wildfly 10.0.0
  • 使用jdk1.8.0_152

我的Websphere 8环境:(笑脸)

  • 是8.0.0.12
  • 使用jdk1.6.0_45

我的Websphere 9环境:(笑脸)

  • 是9.0.0.11
  • 使用jdk1.8.0_152

简单的主要示例:(笑脸)

  • 使用jdk1.6.0_45或jdk1.8.0_152


提前谢谢你

关于这一点,《WildFly开发者指南》中有一些注释

默认情况下,并非所有JDK类都公开于部署。因此,您需要像这样在
jboss deployment structure.xml
中设置系统依赖项

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
    <deployment>
        <dependencies>
            <system export="true">
                <paths>
                    <path name="sun/net/dns"/>
                </paths>
            </system>
        </dependencies>
    </deployment>
</jboss-deployment-structure>

在后来版本的WildFly(18,19)中,这似乎可以在不需要这样做的情况下工作