I configured the javaagent for the springboot application with the exact steps in the Getting Started wizard, however, when I start the spring boot application, I am getting below error. The agent is not getting started and the application is not getting detected by appdynamics. Can you please help resolve. Thanks.
Java 9+ detected, booting with Java9Util enabled.
Full Agent Registration Info Resolver using selfService [true]
Full Agent Registration Info Resolver using selfService [true]
Full Agent Registration Info Resolver using ephemeral node setting [false]
Full Agent Registration Info Resolver using application name [Create User]
Full Agent Registration Info Resolver using tier name [app-tier]
Full Agent Registration Info Resolver using node name [laptop]
Install Directory resolved to[C:\dev\code\spring-boot-rest-api-tutorial-master\appagent]
getBootstrapResource not available on ClassLoader
Class with name [com.ibm.lang.management.internal.ExtendedOperatingSystemMXBeanImpl] is not available in classpath, so will ignore export access.
java.lang.ClassNotFoundException: Unable to load class io.opentelemetry.sdk.resources.ResourceProvider
at com.singularity.ee.agent.appagent.kernel.classloader.Post19AgentClassLoader.findClass(Post19AgentClassLoader.java:73)
at com.singularity.ee.agent.appagent.kernel.classloader.AgentClassLoader.loadClassInternal(AgentClassLoader.java:422)
at com.singularity.ee.agent.appagent.kernel.classloader.Post17AgentClassLoader.loadClassParentLast(Post17AgentClassLoader.java:69)
at com.singularity.ee.agent.appagent.kernel.classloader.AgentClassLoader.loadClass(AgentClassLoader.java:320)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at com.singularity.ee.agent.appagent.AgentEntryPoint.createJava9Module(AgentEntryPoint.java:796)
at com.singularity.ee.agent.appagent.AgentEntryPoint.premain(AgentEntryPoint.java:632)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:513)
at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:525)
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.singularity.ee.agent.appagent.AgentEntryPoint$1.run(AgentEntryPoint.java:649)
Caused by: java.lang.IllegalAccessError: class org.apache.logging.log4j.core.LoggerContext (in module com.appdynamics.appagent) cannot access class java.beans.PropertyChangeEvent (in module java.desktop) because module com.appdynamics.appagent does not read module java.desktop
at com.appdynamics.appagent/org.apache.logging.log4j.core.LoggerContext.updateLoggers(LoggerContext.java:657)
at com.appdynamics.appagent/org.apache.logging.log4j.core.LoggerContext.updateLoggers(LoggerContext.java:644)
at com.appdynamics.appagent/org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:550)
at com.appdynamics.appagent/org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:620)
at com.appdynamics.appagent/org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:637)
at com.appdynamics.appagent/org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:231)
at com.appdynamics.appagent/org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:243)
at com.appdynamics.appagent/org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
at com.appdynamics.appagent/org.apache.logging.log4j.LogManager.getContext(LogManager.java:174)
at com.appdynamics.appagent/org.apache.logging.log4j.LogManager.getLogger(LogManager.java:648)
at com.appdynamics.appagent/com.singularity.ee.agent.util.log4j.ADLoggerFactory.getLogger(ADLoggerFactory.java:61)
at com.appdynamics.appagent/com.singularity.ee.agent.util.bounded.collections.BoundsEnforcer.<clinit>(BoundsEnforcer.java:53)
at com.appdynamics.appagent/com.singularity.ee.agent.util.bounded.collections.BoundsEnforcer$Builder.build(BoundsEnforcer.java:388)
at com.appdynamics.appagent/com.singularity.ee.agent.util.bounded.collections.BoundedConcurrentReferenceHashMap.<init>(BoundedConcurrentReferenceHashMap.java:73)
at com.appdynamics.appagent/com.singularity.ee.agent.util.bounded.collections.BoundedConcurrentReferenceHashMapBuilder.build(BoundedConcurrentReferenceHashMapBuilder.java:114)
at com.appdynamics.appagent/com.singularity.ee.agent.util.reflect.ReflectionUtility.<clinit>(ReflectionUtility.java:154)
at com.appdynamics.appagent/com.singularity.ee.agent.appagent.kernel.JavaAgent.setLog4j2LoaderUtilDisabled(JavaAgent.java:332)
at com.appdynamics.appagent/com.singularity.ee.agent.appagent.kernel.JavaAgent.setupLog4J2(JavaAgent.java:607)
at com.appdynamics.appagent/com.singularity.ee.agent.appagent.kernel.JavaAgent.initialize(JavaAgent.java:359)
at com.appdynamics.appagent/com.singularity.ee.agent.appagent.kernel.JavaAgent.initialize(JavaAgent.java:346)
... 5 more
Process finished with exit code -1
Even after adding the argument we still see the issue? Any update on how to fix this?
Thanks for your suggestion @Ryan.Paredez ,
I think giving jdk.jfr access to all unnamed modules is a security flaw, it would be appreciated if the module containing com.singularity.ee.agent.appagent could be a given a name in the next patch.
Thanks!
To provide more context this is the exact error:
```
'orgCache' threw exception; nested exception is java.lang.IllegalAccessError: class jdk.jfr.internal.SecuritySupport$$Lambda$1168/0x0000000100f17440 (in module jdk.jfr) cannot access class com.singularity.ee.agent.appagent.entrypoint.bciengine.FastMethodInterceptorDelegatorBoot (in unnamed module @0x1996cd68) because module jdk.jfr does not read unnamed module @0x1996cd68
```
It seems `com.singularity.ee.agent.appagent.entrypoint.bciengine.FastMethodInterceptorDelegatorBoot` class (which comes from AppD) has been placed inside an unnamed module, if that module could given a name, we could access it and deploy our service.
Hello @Akshit.Chaturvedi.,
I followed up with some people and I was told this.
Download agent JDK8+
https://accounts.appdynamics.com/downloads
Turns out the Installer Wizzard was sending people to an older download.
Please let me know if that works for you.
Hi @Ryan.Paredez ,
We are already using JDK8+JVM ver 22.12.0.
Same issue in 22.12.0.34603,
I can see the app agent is distinctly named 1.8-22.12.0.34603, is it because the app agent is only compatible with JDK 1.8 and not above?
I moved from jdk11 to jdk8 which made the errors to go away. So, jdk11 is not supported by Appdynamics yet? jdk8 is slightly outdated now and I see its premier support is only until Mar 2022.
Hi Murali
AppD supports JDK 11 up to 16 on most of the platforms, can you advise which version of the Agent you downloaded and used?
Don't see why it would be an issue itself
Ciao
the agent version is 21.10.0.33144.
I tried again switching back to JDK11 but gives same error. with JDK8 there is no error and works fine. for my current need this is okay for me to continue with, but later it need to be figured out why this issue occurs.
Hi @Murali.Sriraman,
I was told this should be fixed in the 21.11 agent. Be on the lookout for the new agent release. I don't have a timeline of when this will be going live.
Thanks for reply. This is huge limitation of of AppDynamics that it does not support beyond JDK1.8. This issue is very easily reproducible even with simple "hello world" project of Java SpringBoot application.
Looks 21.11 version is still not available yet. Many of the applications I work is based on JDK11+ features - so, looks I cannot use AppDynamics till it is resolved.
Hi Murali
AppDynamics does support JDK 11 upwards - https://docs.appdynamics.com/21.11/en/application-monitoring/install-app-server-agents/java-agent/ja...
We have some issues with version 21.10 of the agent as well, can you use a version below e.g 21.9 and test to see if it works?
Hi Mario,
We also found the same errors when we instrumented AppD Java Agent v21.1.0 and above with JRE 11 and Tomcat 8/9 combinations. We have an active ticket with AppD support, and as per latest findings, even v21.11.3 (updated for log4j) is showing the same error messages in the application startup.
One of the recent findings is that when we use -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager, the errors showed up in all versions, where as if we use -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager, the error messages are suppressed.
We use log4j.jul.LogManager for a specific purpose, overriding the default value set in Tomcat's setenv.sh file and ran into these exceptions/errors in the application startup.
Not sure if this setting is supported in JRE 11 and how its conflicting with the default ClassLoaderLogManager class.
It would be beneficial to review this issue in details as its impacting AppD agent use for JDK/JRE 11+.
Regards,
Senthil
I was getting this same error for Java agents running on Corretto 11 and agent version 21.10. As of version 21.11.3 the agents still failed to start up, but with version 21.11.4 they are starting up now. We still have an issue with the agents not reporting Java memory metrics (like GCs), but that issue is plaguing us on some of our Java 8 JVMs as well.