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

时间:2015-06-26 04:20:11

标签: 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.

VisualVM启动但显示以下消息:

  "Cannot open requested application"

在本地,我可以看到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

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

3 个答案:

答案 0 :(得分:3)

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

您可以尝试以下操作:

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

答案 1 :(得分:2)

通过运行jmc尝试使用Java Mission Control。它包含在最新版本的JDK中。 请参阅http://docs.oracle.com/javacomponents/jmc-5-5/jmc-user-guide/index.html

上的入门文档

运行您的应用程序,然后打开jmc窗口并连接到Tomcat进程。

答案 2 :(得分:0)

这是在运行时找不到代码所依赖的类文件时引起的。这纯粹是类路径的问题。类路径中不存在该类,或者类路径中具有不同版本的JAR文件。如果类路径得到纠正,则异常将消失。