无法在 Wildfly 上加载 class sun.net.dns.ResolverConfiguration (JBOSS)
Can't load class sun.net.dns.ResolverConfiguration on Wildfly (JBOSS)
下面的 Java 代码在基本 Main class 示例中运行良好。太棒了!
但是,当它部署在 Wildfly (10.0.0) 应用程序服务器上时,找不到提到的 class 并抛出异常。
我已经在另一个应用程序服务器上测试过,例如 IBM Websphere Application(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]
我的野蝇环境:(愁眉苦脸)
- 野蝇 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 开发人员指南中有一些关于此的注释。
https://docs.wildfly.org/19/Developer_Guide.html#accessing-jdk-classes
默认情况下,并非所有 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) 中,这似乎无需执行此操作即可工作。
下面的 Java 代码在基本 Main class 示例中运行良好。太棒了!
但是,当它部署在 Wildfly (10.0.0) 应用程序服务器上时,找不到提到的 class 并抛出异常。 我已经在另一个应用程序服务器上测试过,例如 IBM Websphere Application(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]
我的野蝇环境:(愁眉苦脸)
- 野蝇 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 开发人员指南中有一些关于此的注释。
https://docs.wildfly.org/19/Developer_Guide.html#accessing-jdk-classes
默认情况下,并非所有 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) 中,这似乎无需执行此操作即可工作。