在运行时更新NewRelic版本时抛出AbstractMethodError错误。
在运行时更新NewRelic版本时抛出AbstractMethodError错误。
我正在一个项目中将newrelic版本从2.x.x更新到5.x.x。我按照newrelic文档中提到的步骤进行操作(我更新了pom文件中的依赖版本,更新了代理jar文件和配置文件)。\n但是现在在运行项目时,通过传递所需的javaagent参数:\njava -server -javaagent:/Users/amit.upadhyay/abcproject/abcproject-app/newrelic-stage/newrelic.jar -jar abcproject-app/target/abcproject-app-*.*.*-SNAPSHOT.jar /Users/amit.upadhyay/Downloads/abcproject.yml\n我遇到了java.lang.AbstractMethodError错误。下面是错误日志:\nERROR StatusLogger Caught java.lang.AbstractMethodError设置特性http://xml.org/sax/features/external-general-entities为false,位于DocumentBuilderFactory org.apache.xerces.jaxp.DocumentBuilderFactoryImpl@e320068上:java.lang.AbstractMethodError:javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava / lang / String; Z)V java.lang.AbstractMethodError:javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava / lang / String; Z)V在com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.setFeature(XmlConfiguration.java:212)中 at at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.disableDtdProcessing(XmlConfiguration.java:205)at at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.newDocumentBuilder(XmlConfiguration.java:194)at at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.
更新NewRelic版本后,在运行时抛出AbstractMethodError错误的问题出现的原因是他们在Java代理中更新了xerces版本,新版本大于5.0.0。除了更新xerces版本的修复之外,我还需要将newrelic配置文件作为系统属性显式传递,以解决ConfigurationException错误。
总体概述:
- 将以下库更新为:
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
<version>1.4.01</version>
</dependency>
并将newrelic配置文件作为系统属性传递:
-Dnewrelic.config.file=./${NEW_RELIC_DIR_NAME}/newrelic.yml