我有下面的Java代码,在一个基本的Main类的例子上可以正常工作。很好!但是在Wildfly(10.0.0)应用服务器上部署时,却找不到这个类,并且出现了异常。
然而,当它部署在Wildfly (10.0.0)应用服务器上时,所提到的类没有被找到,并且抛出了一个异常。我在另一个应用服务器上进行了测试,如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]
我的Wildfly环境: 我的Wildfly环境:
我的Websphere 8环境。 (快乐的脸)
我的Websphere 9环境。 (快乐的脸)
简单的主例。 (快乐的脸)
先谢谢你了!
在WildFly开发者指南中有一些关于这个问题的说明。
https:/docs.wildfly.org19Developer_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)中,似乎不需要这样做就可以了。