Updating NewRelic version throwing AbstractMethodError at runtime

huangapple go评论78阅读模式
英文:

Updating NewRelic version throwing AbstractMethodError at runtime

问题

我正在一个项目中将 2.x.x 版本的 newrelic 更新到 5.x.x 版本。我按照 newrelic 文档中提到的步骤进行操作(更新了 pom 文件中的依赖版本,更新了代理 jar 文件和配置文件)。

但是现在在运行项目时,通过传递所需的 javaagent:

java -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

我遇到了 java.lang.AbstractMethodError。以下是错误日志:

ERROR StatusLogger Caught java.lang.AbstractMethodError setting feature http://xml.org/sax/features/external-general-entities to false on 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 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.setFeature(XmlConfiguration.java:212) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.disableDtdProcessing(XmlConfiguration.java:205) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.newDocumentBuilder(XmlConfiguration.java:194) 	...

由于我在运行时遇到了 AbstractMethodError,即我在项目中使用了一个旧接口,在新版本的 newrelic java agent 5.x.x 中已更新。

错误日志建议我的项目中使用的 xerces 版本与更新后的 newrelic java agent 中的版本存在冲突。在谷歌上搜索后,我找到了两个类似问题的 Stack Overflow 链接:第一个第二个。根据给出的答案,我将以下内容添加到了我的 pom 文件中,然后 AbstractMethodError 错误消失了。

<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>

但是之后再次运行时,我开始遇到此异常:com.newrelic.agent.config.ConfigurationException

这个异常的日志如下:

Mar 16, 2020 02:37:18 +0530 [9598 1] com.newrelic INFO: Configuration file not found. The agent will attempt to read required values from environment variables.
Mar 16, 2020 02:37:18 +0530 [9598 1] com.newrelic INFO: Using default collector host: collector.newrelic.com
Mar 16, 2020 02:37:18 +0530 [9598 1] com.newrelic ERROR: Unable to start the New Relic Agent. Your application will continue to run but it will not be monitored.
com.newrelic.agent.config.ConfigurationException: The agent requires an application name. Check the app_name setting in newrelic.yml
	at com.newrelic.agent.config.ConfigServiceFactory.validateConfig(ConfigServiceFactory.java:64) ~ ...

我现在不明白为什么会抛出 ConfigurationException(或者为什么无法找到配置文件)。当我在相同的 java 命令下(具有完全相同的代理 jar 和配置文件路径)使用旧版本的 newrelic agent(2.x.x 或 3.x.x)时,一切都运行得很正常。

我想了解这里发生了什么问题/缺失?

英文:

I am updating the newrelic version from 2.x.x to 5.x.x in a project. I followed steps as mentioned in the newrelic docs (I updated the dependency version in pom file, updated the agent jar file and the config file).

But now on running project passing the required javaagent:

java -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

I get java.lang.AbstractMethodError. Below is the error log:

ERROR StatusLogger Caught java.lang.AbstractMethodError setting feature http://xml.org/sax/features/external-general-entities to false on 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 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.setFeature(XmlConfiguration.java:212) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.disableDtdProcessing(XmlConfiguration.java:205) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.newDocumentBuilder(XmlConfiguration.java:194) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.&lt;init&gt;(XmlConfiguration.java:92) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfigurationFactory.getConfiguration(XmlConfigurationFactory.java:46) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:420) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:347) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration(ConfigurationFactory.java:261) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:616) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:637) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:243) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45) 	at com.newrelic.agent.deps.org.apache.logging.log4j.LogManager.getContext(LogManager.java:174) 	at com.newrelic.agent.deps.org.apache.logging.log4j.LogManager.getLogger(LogManager.java:648) 	at com.newrelic.agent.logging.Log4jLogger.&lt;init&gt;(Log4jLogger.java:68) 	at com.newrelic.agent.logging.Log4jLogger.create(Log4jLogger.java:415) 	at com.newrelic.agent.logging.Log4jLogManager.createRootLogger(Log4jLogManager.java:38) 	at com.newrelic.agent.logging.Log4jLogManager.initializeRootLogger(Log4jLogManager.java:98) 	at com.newrelic.agent.logging.Log4jLogManager.&lt;init&gt;(Log4jLogManager.java:34) 	at com.newrelic.agent.logging.Log4jLogManager.create(Log4jLogManager.java:254) 	at com.newrelic.agent.logging.AgentLogManager.createAgentLogManager(AgentLogManager.java:19) 	at com.newrelic.agent.logging.AgentLogManager.&lt;clinit&gt;(AgentLogManager.java:9) 	at com.newrelic.agent.Agent.&lt;clinit&gt;(Agent.java:59) 	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 com.newrelic.bootstrap.BootstrapAgent.startAgent(BootstrapAgent.java:179) 	at com.newrelic.bootstrap.BootstrapAgent.premain(BootstrapAgent.java:81) 	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) ERROR StatusLogger Caught java.lang.AbstractMethodError setting feature http://xml.org/sax/features/external-parameter-entities to false on 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 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.setFeature(XmlConfiguration.java:212) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.disableDtdProcessing(XmlConfiguration.java:206) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.newDocumentBuilder(XmlConfiguration.java:194) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.&lt;init&gt;(XmlConfiguration.java:92) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfigurationFactory.getConfiguration(XmlConfigurationFactory.java:46) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:420) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:347) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration(ConfigurationFactory.java:261) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:616) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:637) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:243) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45) 	at com.newrelic.agent.deps.org.apache.logging.log4j.LogManager.getContext(LogManager.java:174) 	at com.newrelic.agent.deps.org.apache.logging.log4j.LogManager.getLogger(LogManager.java:648) 	at com.newrelic.agent.logging.Log4jLogger.&lt;init&gt;(Log4jLogger.java:68) 	at com.newrelic.agent.logging.Log4jLogger.create(Log4jLogger.java:415) 	at com.newrelic.agent.logging.Log4jLogManager.createRootLogger(Log4jLogManager.java:38) 	at com.newrelic.agent.logging.Log4jLogManager.initializeRootLogger(Log4jLogManager.java:98) 	at com.newrelic.agent.logging.Log4jLogManager.&lt;init&gt;(Log4jLogManager.java:34) 	at com.newrelic.agent.logging.Log4jLogManager.create(Log4jLogManager.java:254) 	at com.newrelic.agent.logging.AgentLogManager.createAgentLogManager(AgentLogManager.java:19) 	at com.newrelic.agent.logging.AgentLogManager.&lt;clinit&gt;(AgentLogManager.java:9) 	at com.newrelic.agent.Agent.&lt;clinit&gt;(Agent.java:59) 	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 com.newrelic.bootstrap.BootstrapAgent.startAgent(BootstrapAgent.java:179) 	at com.newrelic.bootstrap.BootstrapAgent.premain(BootstrapAgent.java:81) 	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) ERROR StatusLogger Caught java.lang.AbstractMethodError setting feature http://apache.org/xml/features/nonvalidating/load-external-dtd to false on 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 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.setFeature(XmlConfiguration.java:212) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.disableDtdProcessing(XmlConfiguration.java:207) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.newDocumentBuilder(XmlConfiguration.java:194) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfiguration.&lt;init&gt;(XmlConfiguration.java:92) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.xml.XmlConfigurationFactory.getConfiguration(XmlConfigurationFactory.java:46) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:420) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:347) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration(ConfigurationFactory.java:261) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:616) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:637) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:243) 	at com.newrelic.agent.deps.org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45) 	at com.newrelic.agent.deps.org.apache.logging.log4j.LogManager.getContext(LogManager.java:174) 	at com.newrelic.agent.deps.org.apache.logging.log4j.LogManager.getLogger(LogManager.java:648) 	at com.newrelic.agent.logging.Log4jLogger.&lt;init&gt;(Log4jLogger.java:68) 	at com.newrelic.agent.logging.Log4jLogger.create(Log4jLogger.java:415) 	at com.newrelic.agent.logging.Log4jLogManager.createRootLogger(Log4jLogManager.java:38) 	at com.newrelic.agent.logging.Log4jLogManager.initializeRootLogger(Log4jLogManager.java:98) 	at com.newrelic.agent.logging.Log4jLogManager.&lt;init&gt;(Log4jLogManager.java:34) 	at com.newrelic.agent.logging.Log4jLogManager.create(Log4jLogManager.java:254) 	at com.newrelic.agent.logging.AgentLogManager.createAgentLogManager(AgentLogManager.java:19) 	at com.newrelic.agent.logging.AgentLogManager.&lt;clinit&gt;(AgentLogManager.java:9) 	at com.newrelic.agent.Agent.&lt;clinit&gt;(Agent.java:59) 	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 com.newrelic.bootstrap.BootstrapAgent.startAgent(BootstrapAgent.java:179) 	at com.newrelic.bootstrap.BootstrapAgent.premain(BootstrapAgent.java:81) 	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) Mar 16, 2020 01:40:38 +0530 [8698 1] com.newrelic INFO: Configuration file not found. The agent will attempt to read required values from environment variables. Mar 16, 2020 01:40:38 +0530 [8698 1] com.newrelic INFO: Using default collector host: collector.newrelic.com Mar 16, 2020 01:40:38 +0530 [8698 1] com.newrelic ERROR: Unable to start the New Relic Agent. Your application will continue to run but it will not be monitored. com.newrelic.agent.config.ConfigurationException: The agent requires an application name. Check the app_name setting in newrelic.yml 	at com.newrelic.agent.config.ConfigServiceFactory.validateConfig(ConfigServiceFactory.java:64) 	at com.newrelic.agent.config.ConfigServiceFactory.createConfigService(ConfigServiceFactory.java:27)

Since I am encountering AbstractMethodError at runtime i.e. somewhere I am using an old interface that is updated in the new versions of newrelic java agent 5.x.x.

The error logs suggested that there is a conflict between xerces version being used in my project and what is there in the updated newrelic javaagent. On googling I found these two SO links first and second with similar kinda issue. According to answers given, I added

        &lt;dependency&gt;
&lt;groupId&gt;xerces&lt;/groupId&gt;
&lt;artifactId&gt;xercesImpl&lt;/artifactId&gt;
&lt;version&gt;2.11.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
&lt;groupId&gt;xml-apis&lt;/groupId&gt;
&lt;artifactId&gt;xml-apis&lt;/artifactId&gt;
&lt;version&gt;1.4.01&lt;/version&gt;
&lt;/dependency&gt;

to my pom file and this AbstractMethodError error was gone.

But then on running again I started getting this exception: com.newrelic.agent.config.ConfigurationException

The logs for this exception is:

Mar 16, 2020 02:37:18 +0530 [9598 1] com.newrelic INFO: Configuration file not found. The agent will attempt to read required values from environment variables.
Mar 16, 2020 02:37:18 +0530 [9598 1] com.newrelic INFO: Using default collector host: collector.newrelic.com
Mar 16, 2020 02:37:18 +0530 [9598 1] com.newrelic ERROR: Unable to start the New Relic Agent. Your application will continue to run but it will not be monitored.
com.newrelic.agent.config.ConfigurationException: The agent requires an application name. Check the app_name setting in newrelic.yml
at com.newrelic.agent.config.ConfigServiceFactory.validateConfig(ConfigServiceFactory.java:64) ~
at com.newrelic.agent.config.ConfigServiceFactory.createConfigService(ConfigServiceFactory.java:27) ~
at com.newrelic.agent.service.ServiceManagerImpl.&lt;init&gt;(ServiceManagerImpl.java:126) ~
at com.newrelic.agent.Agent.premain(Agent.java:279) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_222]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_222]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]
at com.newrelic.bootstrap.BootstrapAgent.startAgent(BootstrapAgent.java:179) 
at com.newrelic.bootstrap.BootstrapAgent.premain(BootstrapAgent.java:81) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_222]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_222]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386) [?:1.8.0_222]
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401) [?:1.8.0_222]

Now, I don't understand why is this throwing ConfigurationException (or why is it not able to find the configuration file). The same java command (with exactly the same path of agent jar and configuration file) when used with an older version of newrelic agent(2.x.x or 3.x.x) runs perfectly.

I wanted to understand what is going wrong/missing here?

答案1

得分: 2

我能够在我的项目中更新到最新的 newrelic 版本。看起来他们在他们的 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
英文:

I was able to update to the latest newrelic version in my project. It seems that they have updated the xerces version in their java agent where version is greater than 5.0.0. Along with the fix of updating xerces version, I needed to pass the newrelic config file explicitly as system properties to resolve the ConfigurationException.

Overall summary:

  • update these libraries to

          &lt;dependency&gt;
    &lt;groupId&gt;xerces&lt;/groupId&gt;
    &lt;artifactId&gt;xercesImpl&lt;/artifactId&gt;
    &lt;version&gt;2.11.0&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
    &lt;groupId&gt;xml-apis&lt;/groupId&gt;
    &lt;artifactId&gt;xml-apis&lt;/artifactId&gt;
    &lt;version&gt;1.4.01&lt;/version&gt;
    &lt;/dependency&gt;
    

And pass the newrelic config file as system property:

-Dnewrelic.config.file=./${NEW_RELIC_DIR_NAME}/newrelic.yml

huangapple
  • 本文由 发表于 2020年3月16日 06:08:43
  • 转载请务必保留本文链接:https://go.coder-hub.com/60698157.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定