代码之家  ›  专栏  ›  技术社区  ›  Evandro Pomatti

WildFly服务模块加载器-在jdk.incubator.http.HttpClient上找不到类

  •  2
  • Evandro Pomatti  · 技术社区  · 6 年前

    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启动java --show-module-resolution 确认模块已加载:

    ...
    root jdk.incubator.httpclient jrt:/jdk.incubator.httpclient
    ...
    
    and also after this WildFLy prints the message: WARNING: Using incubator modules: jdk.incubator.httpclient
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Evandro Pomatti    6 年前

    这似乎是WildFly中的一个bug。我们决定使用一个具有64位平台的新虚拟机,并转移到JDK11。