gpt4 book ai didi

tomcat9 - Tomcat 服务未从弹性 APM java 代理启动

转载 作者:行者123 更新时间:2023-12-04 07:38:16 34 4
gpt4 key购买 nike

我正在尝试使用弹性 APM 代理(java)在 linux 中启动 tomcat 服务。但是每次我启动服务时,都会收到这些错误

SEVERE: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/mis-all-1.0.0]]
at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1007)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:983)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:639)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1296)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:2037)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.VerifyError: (class: javax/servlet/GenericServlet, method: init signature: (Ljavax/servlet/ServletConfig;)V) invokedynamic bytecode is not supported in this class file version
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2509)
at java.lang.Class.getDeclaredFields(Class.java:1819)
at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:270)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:138)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:70)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:417)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:891)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5536)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
... 10 more

May 20, 2021 5:48:15 AM org.apache.catalina.startup.HostConfig deployDirectory
SEVERE: Error deploying web application directory []
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/mis-all-1.0.0]]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1011)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:983)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:639)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1296)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:2037)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
at java.lang.Thread.run(Thread.java:745)
我正在使用以下命令为 APM 代理设置环境变量
export CATALINA_OPTS="$CATALINA_OPTS -javaagent:/app/elastic-apm-agent-1.23.0.jar"
export CATALINA_OPTS="$CATALINA_OPTS -Delastic.apm.service_name=Stage-pricing"
export CATALINA_OPTS="$CATALINA_OPTS -Delastic.apm.application_packages=org,com,com.qr.jadu"
export CATALINA_OPTS="$CATALINA_OPTS -Delastic.apm.server_url=http://ip:8200"
export CATALINA_OPTS="$CATALINA_OPTS -Delastic.apm.global_labels='env=Stage'"
和 logback-classic 版本 1.0.6
请提出解决方案或我遗漏的任何步骤,提前致谢。

由 kriegaex 更新,复制自 OP 的评论:
  • 服务器版本:Apache Tomcat/7.0.106 服务器
  • 建成时间:2020 年 9 月 16 日 08:33:41 UTC
  • 服务器编号:7.0.106.0 操作系统

  • 操作系统:Linux 操作系统版本:4.14.35-2047.502.4.1.el7uek.x86_64
  • 架构:amd64
  • JVM 版本:1.7.0_301-b09
  • JVM 供应商:Oracle Corporation APM
  • 服务器版本:7.12.1
  • APM 代理语言和版本:java,1.23。此外,apm 代理支持 7u60+、8u40+、9、10、11。
  • 最佳答案

    Caused by: java.lang.VerifyError: (
    class: javax/servlet/GenericServlet,
    method: init
    signature: (Ljavax/servlet/ServletConfig;)V)
    invokedynamic bytecode is not supported in this class file version

    彼得是对的。您的 Elastic APM 代理 - 无论它做什么 - 都会转换 void GenericServlet.init(ServletConfig) 的字节码以这样的方式利用 invokedynamic字节码指令,不检查或期望它编入的代码来自古老的 Java 版本。 Invokedynamic 是在 Java 7 中引入的,因此您的 JAR 必须包含旧版本。如果可以以这种方式配置代理,则将其从转换中排除,或者升级 JAR,使用更新的版本或将 API 源重新编译为更新的 (Java 7+) 字节代码版本。大多数代理可能更希望 Java 8+,但我不确定你的。

    关于tomcat9 - Tomcat 服务未从弹性 APM java 代理启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67635031/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com