WildFly 服务模块加载器 - jdk.incubator.http.HttpClient 上的 ClassNotFound
WildFly Service Module Loader - ClassNotFound on jdk.incubator.http.HttpClient
我使用带有 JDK 10 的 WildFly15 来使用新的 HTTP 客户端构建应用程序,当我将 jdk.incubator.httpclient
声明为我的模块中唯一的单一要求时,它工作正常。 (我不能转到 JDK11,因为我们需要 运行 32 位)。
这是两组值的完整命令行(我从Eclipse中复制的):
Program arguments:
-mp "D:\ambientes\oboticario\itsmconn2\wildfly-15.0.0.Final\modules" org.jboss.as.standalone -b localhost --server-config=standalone-full.xml -Djboss.server.base.dir=D:\ambientes\oboticario\itsmconn2\wildfly-15.0.0.Final\standalone
VM Arguments:
"-Dprogram.name=JBossTools: WildFly 15 at localhost" -server -Xms64m -Xmx512m -Dorg.jboss.resolver.warning=true -Djava.net.preferIPv4Stack=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true "-Dorg.jboss.boot.log.file=D:\ambientes\oboticario\itsmconn2\wildfly-15.0.0.Final\standalone\log\boot.log" "-Dlogging.configuration=file:D:\ambientes\oboticario\itsmconn2\wildfly-15.0.0.Final\standalone\configuration\logging.properties" "-Djboss.home.dir=D:\ambientes\oboticario\itsmconn2\wildfly-15.0.0.Final" -Dorg.jboss.logmanager.nocolor=true -Djboss.bind.address.management=localhost --add-modules jdk.incubator.httpclient
我正在正确地添加 --add-modules jdk.incubator.httpclient
到 JVM 启动。
module mymodule {
requires jdk.incubator.httpclient;
//requires javaee.api;
}
但是,当我删除 javaee.api
模块的注释并将其添加为要求时,我得到 ClassNotFoundException
:
module mymodule {
requires jdk.incubator.httpclient;
requires javaee.api;
}
由于我在我的 EJB 中使用了 HTTP 客户端 API,这可能是 javaee.api 破坏构建的原因吗?如何解决?
Caused by: java.lang.ClassNotFoundException: jdk.incubator.http.HttpClient from [Module "deployment.sdi.war" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:255)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
... 18 more
使用选项 use --show-module-resolution
启动 java 确认模块已加载:
...
root jdk.incubator.httpclient jrt:/jdk.incubator.httpclient
...
and also after this WildFLy prints the message: WARNING: Using incubator modules: jdk.incubator.httpclient
这似乎是 WildFly 中的一个错误。我们决定使用 64 位平台的新虚拟机并迁移到 JDK11。
我使用带有 JDK 10 的 WildFly15 来使用新的 HTTP 客户端构建应用程序,当我将 jdk.incubator.httpclient
声明为我的模块中唯一的单一要求时,它工作正常。 (我不能转到 JDK11,因为我们需要 运行 32 位)。
这是两组值的完整命令行(我从Eclipse中复制的):
Program arguments:
-mp "D:\ambientes\oboticario\itsmconn2\wildfly-15.0.0.Final\modules" org.jboss.as.standalone -b localhost --server-config=standalone-full.xml -Djboss.server.base.dir=D:\ambientes\oboticario\itsmconn2\wildfly-15.0.0.Final\standalone
VM Arguments:
"-Dprogram.name=JBossTools: WildFly 15 at localhost" -server -Xms64m -Xmx512m -Dorg.jboss.resolver.warning=true -Djava.net.preferIPv4Stack=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true "-Dorg.jboss.boot.log.file=D:\ambientes\oboticario\itsmconn2\wildfly-15.0.0.Final\standalone\log\boot.log" "-Dlogging.configuration=file:D:\ambientes\oboticario\itsmconn2\wildfly-15.0.0.Final\standalone\configuration\logging.properties" "-Djboss.home.dir=D:\ambientes\oboticario\itsmconn2\wildfly-15.0.0.Final" -Dorg.jboss.logmanager.nocolor=true -Djboss.bind.address.management=localhost --add-modules jdk.incubator.httpclient
我正在正确地添加 --add-modules jdk.incubator.httpclient
到 JVM 启动。
module mymodule {
requires jdk.incubator.httpclient;
//requires javaee.api;
}
但是,当我删除 javaee.api
模块的注释并将其添加为要求时,我得到 ClassNotFoundException
:
module mymodule {
requires jdk.incubator.httpclient;
requires javaee.api;
}
由于我在我的 EJB 中使用了 HTTP 客户端 API,这可能是 javaee.api 破坏构建的原因吗?如何解决?
Caused by: java.lang.ClassNotFoundException: jdk.incubator.http.HttpClient from [Module "deployment.sdi.war" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:255)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
... 18 more
使用选项 use --show-module-resolution
启动 java 确认模块已加载:
...
root jdk.incubator.httpclient jrt:/jdk.incubator.httpclient
...
and also after this WildFLy prints the message: WARNING: Using incubator modules: jdk.incubator.httpclient
这似乎是 WildFly 中的一个错误。我们决定使用 64 位平台的新虚拟机并迁移到 JDK11。