Java Can';t在Wildfly(JBOSS)上加载类sun.net.dns.ResolverConfiguration
下面的Java代码在一个基本的主类示例上运行良好。太好了 但是,当它部署在Wildfly(10.0.0)应用程序服务器上时,找不到提到的类,并引发异常。 我已经在另一个应用服务器上进行了测试,比如IBMWebSphere应用程序(8.0和9.0),它也可以工作 有人知道为什么这会发生在Wildfly上吗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
代码:
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)中,这似乎可以在不需要这样做的情况下工作