Reputation: 1
I'm trying to integrate newrelic-agent for metrics. I'm using the below newrelic version and while running locally, it is working fine.
<groupId>com.newrelic.agent.java</groupId>
<artifactId>newrelic-agent</artifactId>
<version>8.5.0</version>
downloaded my newrelic.jar from curl -O https://download.newrelic.com/newrelic/java-agent/newrelic-agent/current/newrelic-java.zip But when I add my service to docker with this image of java 17 linux/x86_64 openjdk:17-jdk-buster, I'm getting NoClassDefFoundError Exception. Error Details
Unable to start New Relic Agent. Please remove -javaagent from your startup arguments and contact New Relic support.
java.lang.NoClassDefFoundError: java/sql/SQLException
at com.newrelic.agent.database.ParsedDatabaseStatement.<init>(ParsedDatabaseStatement.java:26)
at com.newrelic.agent.database.SelectVariableStatementFactory.<init>(SelectVariableStatementFactory.java:19)
at com.newrelic.agent.database.DefaultDatabaseStatementParser.<init>(DefaultDatabaseStatementParser.java:55)
at com.newrelic.agent.database.DatabaseService.<init>(DatabaseService.java:40)
at com.newrelic.agent.service.ServiceManagerImpl.doStart(ServiceManagerImpl.java:260)
at com.newrelic.agent.service.AbstractService.start(AbstractService.java:63)
at com.newrelic.agent.Agent.continuePremain(Agent.java:173)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at com.newrelic.bootstrap.BootstrapAgent.startAgent(BootstrapAgent.java:175)
at com.newrelic.bootstrap.BootstrapAgent.premain(BootstrapAgent.java:117)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:491)
at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:503)
Caused by: java.lang.ClassNotFoundException: java.sql.SQLException
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 19 more
I tried with different versions of newrelic-agent and changed the mysql-connector version
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
Upvotes: 0
Views: 317