java - 无法加载 Logmanager "org.jboss.logmanager.LogManager"java.lang.ClassNotFoundException : org. jboss.logmanager.LogManager

标签 java ubuntu-14.04 dockerfile wildfly-8 jvisualvm

我正在使用Visualvm工具并尝试通过jmx建立远程连接。我需要连接到我的远程服务器 ubuntu 14.04。我的 Web 应用程序在 Docker 上运行,jboss/wildfly 在 docker 上运行。下面是 dockerfile。

FROM jboss/wildfly:10.1.0.Final
RUN /opt/jboss/wildfly/bin/add-user.sh username password --silent
ENV JBOSS_LOG_MANAGER_LIB /opt/wildfly-8.2.0.Final/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.5.2.Final.jar
ENV JAVA_OPTS="-XX:PermSize=4096m -XX:MaxPermSize=1024m -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses -Dcom.sun.management.jmxremote.rmi.port=8686 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=8787 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=false -Djava.rmi.server.hostname=x.x.x.x -Xbootclasspath/p:$JBOSS_LOG_MANAGER_LIB -Djboss.modules.system.pkgs=org.jboss.logmanager -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Xbootclasspath/p:/opt/wildfly-8.2.0.Final/modules/system/layers/base/org/jboss/logging/main/jboss-logging-3.1.4.GA.jar -Xbootclasspath/p:/opt/wildfly-8.2.0.Final/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.5.2.Final.jar"
ADD project_web.war /home/ubuntu/SampleTest/project
ADD standalone.xml /opt/wildfly-8.2.0.Final/standalone/configuration
CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"]
ENV OFFLINE_DB_USERNAME username
ENV OFFLINE_DB_URL jdbc:mysql://x.x.x.x:3306/%s?useLegacyDatetimeCode=false&useTimezone=true&serverTimezone=UTC
ENV OFFLINE_DB_SERVER_URL jdbc:mysql://x.x.x.x:3306/offlineserver?useLegacyDatetimeCode=false&useTimezone=true&serverTimezone=UTC
ENV OFFLINE_DB_PASSWORD password
EXPOSE 8787

我的运行命令是-

sudo docker run -e JAVA_OPTS="-Dlog4j.configurationFile=log4j2_dev.xml -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=8787 -Dcom.sun.management.jmxremote.rmi.port=8686 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=x.x.x.x -Xbootclasspath/p:/opt/wildfly-8.2.0.Final/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.5.2.Final.jar -Djboss.modules.system.pkgs=org.jboss.logmanager -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Xbootclasspath/p:/opt/wildfly-8.2.0.Final/modules/system/layers/base/org/jboss/logging/main/jboss-logging-3.1.4.GA.jar -Xbootclasspath/p:/opt/wildfly-8.2.0.Final/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.5.2.Final.jar" -p 9595:8080 -p 9696:8080 -p 8787:8787 -v /home/ubuntu/SampleTest/project/logs:/opt/wildfly/standalone/log --restart=always -d sample/testweb:20170615

通过执行 docker log 和容器 ID,我收到以下错误 -

WARNING: Failed to load the specified log manager class org.jboss.logmanager.LogManager
Exception in thread "main" java.lang.NoClassDefFoundError: org/jboss/logmanager/Level
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.jboss.modules.Module.run(Module.java:320)
    at org.jboss.modules.Main.main(Main.java:505)
 Caused by: java.lang.ClassNotFoundException: org.jboss.logmanager.Level
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:348)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
    ... 4 more

最佳答案

您只能指定-Xbootclasspath一次。我的猜测是它会选择最后一个实例并忽略其他实例。您需要将它们组合成一个参数。它可能应该看起来像:

-Xbootclasspath/p:/opt/wildfly-8.2.0.Final/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.5.2.Final.jar:/opt/wildfly-8.2.0.Final/modules/system/layers/base/org/jboss/logging/main/jboss-logging-3.1.4.GA.jar:/opt/wildfly-8.2.0.Final/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.5.2.Final.jar

关于java - 无法加载 Logmanager "org.jboss.logmanager.LogManager"java.lang.ClassNotFoundException : org. jboss.logmanager.LogManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44560815/

相关文章:

mySQL 5.7.13 源安装不创建 mysqld.sock

django - 如何构建docker镜像以引用venv中的python库

Android 游戏循环中的 java.util.ConcurrentModificationException

java - 如何在cpanel中连接远程mysql连接

linux - 如何在不同版本的 Julia 之间切换(特别是在 Ubuntu 上的 v0.3 和 v0.4 之间)?

networking - 在Cisco AnyConnect安全移动客户端提供VPN隧道的同时使用Docker时直接访问eth0

java - 主版本 53 比 52 新,这是此编译器支持的最高主版本。安卓工作室

java - 通过套接字发送文件 - 终止条件

java - Java Spring Boot 的 Docker 基础镜像 (`FROM` 是什么?

node.js - Docker ubuntu :16. 04 镜像需要 vpn 证书才能正常工作,但 Node :14-alpine3. 12 不需要?