VisualVM无法在Eclipse上对Web应用程序进行分析。

6

我想对正在Tomcat和Eclipse上运行的Spring Web应用程序进行分析。 我将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,但不确定如何操作。

尝试从命令行运行jvisualvm并将其附加到正在运行的程序。您也可以使用jmc或yourkit执行相同操作。 - Peter Lawrey
3个回答

3
可能是因为在VisualVM插件启动Tomcat时,类路径不完整所致。您可以尝试更正您创建的启动配置的类路径(例如,尝试将您的Tomcat安装中的bin/tomcat-juli.jar添加进去),但我怀疑这并不容易解决。
您可以尝试以下步骤:
- 启动您的Tomcat,例如从Eclipse启动。 - 然后手动启动VisualVM:它实际上是JDK的一部分,位于/bin/jvisualvm(.exe)中。 - 在应用程序列表中,您应该看到Tomcat进程,然后可以双击打开它。

2

0

当您的代码在运行时找不到其依赖的类文件时,就会出现这种情况。这纯粹是与类路径有关的问题。要么该类不存在于类路径中,要么您在类路径中使用了不同版本的JAR文件。如果修正类路径,则异常将消失。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接