我正在尝试将JMX Exporter配置为Wildfly 10.1.0框的代理。使用默认配置,一切正常。
现在,我需要添加Sentry作为自定义处理程序,以使Wildfly无法启动并出现以下错误:
java.lang.IllegalArgumentException: Failed to load module "io.sentry" for handler "SENTRY"
at org.jboss.logmanager.config.AbstractPropertyConfiguration.<init>(AbstractPropertyConfiguration.java:64)
...
at java.util.logging.Logger.getLogger(Logger.java:502)
at io.prometheus.jmx.shaded.io.prometheus.jmx.JmxCollector.<clinit>(JmxCollector.java:38)
at io.prometheus.jmx.shaded.io.prometheus.jmx.JavaAgent.premain(JavaAgent.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
Caused by: java.lang.NoClassDefFoundError: org/jboss/modules/ModuleLoader
at org.jboss.logmanager.config.AbstractPropertyConfiguration$ModuleFinder.getClassLoader(AbstractPropertyConfiguration.java:463)
at org.jboss.logmanager.config.AbstractPropertyConfiguration.<init>(AbstractPropertyConfiguration.java:62)
... 27 more
当我将-Xbootclasspath/p:/opt/jboss/wildfly/jboss-modules.jar
添加到JAVA_OPTS
时,错误变为:
java.lang.IllegalArgumentException: Failed to load module "io.sentry" for handler "SENTRY"
at org.jboss.logmanager.config.AbstractPropertyConfiguration.<init>(AbstractPropertyConfiguration.java:64)
...
at java.util.logging.Logger.getLogger(Logger.java:502)
at io.prometheus.jmx.shaded.io.prometheus.jmx.JmxCollector.<clinit>(JmxCollector.java:38)
at io.prometheus.jmx.shaded.io.prometheus.jmx.JavaAgent.premain(JavaAgent.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
Caused by: org.jboss.modules.ModuleNotFoundException: io.sentry:main
at org.jboss.modules.ModuleLoader.loadModule(ModuleLoader.java:223)
at org.jboss.logmanager.config.AbstractPropertyConfiguration$ModuleFinder.getClassLoader(AbstractPropertyConfiguration.java:467)
at org.jboss.logmanager.config.AbstractPropertyConfiguration.<init>(AbstractPropertyConfiguration.java:62)
... 27 more
org.jboss.modules.ModuleNotFoundException: org.jboss.as.standalone:main
at org.jboss.modules.ModuleLoader.loadModule(ModuleLoader.java:223)
at org.jboss.modules.Main.main(Main.java:394)
是否存在在同一Wildfly部署中配置代理和自定义处理程序的正确方法?
编辑1 :
当前的JAVA_OPTS
是:
-server
-Xms1024m
-Xmx1024m
-XX:MetaspaceSize=256m
-XX:MaxMetaspaceSize=256m
-XX:NewRatio=2
-XX:SurvivorRatio=20
-XX:+UnlockExperimentalVMOptions
-XX:+UseCGroupMemoryLimitForHeap
-XX:+UseGCOverheadLimit
-XX:+ExitOnOutOfMemoryError
-Djava.net.preferIPv4Stack=true
-Djava.awt.headless=true
-Djboss.modules.system.pkgs=org.jboss.byteman,org.jboss.logmanager,io.sentry
-javaagent:/opt/agent/prometheus/jmx_prometheus_javaagent.jar=1234:/opt/jboss/wildfly/bin/jmx-exporter-config.yaml
-Djava.util.logging.manager=org.jboss.logmanager.LogManager
-Xbootclasspath/p:/opt/jboss/wildfly/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-2.0.4.Final.jar
-Xbootclasspath/p:/opt/jboss/wildfly/modules/system/layers/base/io/sentry/main/sentry-1.7.2.jar
-Xbootclasspath/p:/opt/jboss/wildfly/jboss-modules.jar
JVM版本:
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (IcedTea 3.6.0) (Alpine 8.151.12-r0)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
操作系统版本(容器):
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.7.0
PRETTY_NAME="Alpine Linux v3.7"
HOME_URL="http://alpinelinux.org"
BUG_REPORT_URL="http://bugs.alpinelinux.org"