当使用AppDynamics JAVA Agent for Elasticsearch时,可能会遇到以下异常:
Exception in thread "main" java.lang.NoClassDefFoundError: com/appdynamics/agent/api/ConfigListener
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.elasticsearch.plugins.PluginsService.loadPlugin(PluginsService.java:610)
at org.elasticsearch.plugins.PluginsService.(PluginsService.java:112)
at org.elasticsearch.node.Node.(Node.java:338)
at org.elasticsearch.node.Node.(Node.java:245)
at org.elasticsearch.bootstrap.Bootstrap.start(Bootstrap.java:243)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:307)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)
at org.elasticsearch.cli.Command.main(Command.java:90)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:116)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93)
Caused by: java.lang.ClassNotFoundException: com.appdynamics.agent.api.ConfigListener
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 15 more
这种情况通常是因为缺少AppDynamics Agent的jar包。要解决此问题,请确保将AppDynamics Agent的jar包添加到Elasticsearch的classpath路径中。例如,如果您使用Elasticsearch 6.x,可以按照以下步骤进行操作:
1.在Elasticsearch的lib目录中添加appdynamics-agent.jar文件。
2.将以下内容添加到elasticsearch.yml文件末尾:
com:
appdynamics:
agent:
application-name: "MyApplicationName"
tier-name: