VisualVM无法在Eclipse上分析Web应用程序

Dan*_*own 6 java eclipse tomcat web-applications visualvm

我想介绍一下在Tomcat和Eclipse上运行的Spring Web Application.我将VisualVM添加到Eclipse中,然后按照以下步骤运行应用程序以进行性能分析.

Right click on the application name > 
Run As > 
Run Configuration > 
Java Application > 
'Selected Project' > 
Set 'org.apache.catalina.starup.Boostrap' as a value for Main class, 
also selected VisualVM as the Launcher > clicked on Run button.
Run Code Online (Sandbox Code Playgroud)

VisualVM启动但显示以下消息:

  "Cannot open requested application"
Run Code Online (Sandbox Code Playgroud)

在本地我可以看到VisualVM,Eclipse和Tomcat.

以下异常将被抛出并显示在控制台上:

 Exception in thread "main" java.lang.NoClassDefFoundError: 
org/apache/juli/logging/LogFactory
    at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:59)
Caused by: java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more
Run Code Online (Sandbox Code Playgroud)

我认为问题是因为选择了错误的服务器.也许我应该选择Tomcat但不确定如何.

wer*_*ero 3

当 VisualVM 插件启动 Tomcat 时,可能存在类路径不完整的问题。您可以尝试更正您创建的启动配置的类路径(例如,尝试从 Tomcat 安装中添加 bin/tomcat-juli.jar),但我怀疑这会很容易工作。

您可以尝试以下操作:

  • 启动 Tomcat,例如从 Eclipse
  • 然后手动启动 VisualVM:它实际上是 JDK 的一部分,位于 <JDK dir>/bin/jvisualvm(.exe)
  • 在应用程序列表中,您应该看到 Tomcat 进程,然后您可以双击打开它。