我想介绍一下在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但不确定如何。
答案 0 :(得分:3)
当VisualVM插件启动Tomcat时,可能是一个不完整的类路径问题。您可以尝试更正您创建的启动配置的类路径(例如,尝试从tomcat安装中添加bin / tomcat-juli.jar),但我怀疑这将很容易。
您可以尝试以下操作:
答案 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文件。如果类路径得到纠正,则异常将消失。