我正在使用在本地运行的JVisualVM(JDK 1.7.0 – 06,64位),在Apache Tomcat(7.0.34)中配置一个作为Windows 7(64位)服务的Servlet。
@H_301_1@最初,由于不同的“java.io.tmp”属性bug /功能,Tomcat没有显示在本地应用程序列表中,而是在本论坛的几个帖子中提供了解决方法。
@H_301_1@然而,尽管Tomcat进程现在在本地应用程序列表中显示为“本地应用程序”,但是当我打开进程时,没有用于监视器,线程,采样器或配置文件的选项卡 – 只有“JVM参数”和“系统属性”子项的“概览”选项卡-tabs显示可怕的“不支持此jvm”消息。
@H_301_1@我仔细检查了以下项目:
@H_301_1@> Tomcat和JVisualVM都通过查看JVisualVM中的JVM属性(使用Tomcat的JMX连接)运行相同版本的Java,
> Tomcat和JVisualVM都通过查看JVisualVM中的系统属性(再次使用Tomcat的JMX连接)并查看实际的TMP / TEMP目录,并确认PID文件为都存在
>文件系统是NTFS
> Windows用户在名称中没有下划线(注意:用户在名称中有一段时间,因为我们使用的形式为“firstname.lastname”的网络登录名,但是我没有查看其他Java应用程序的问题所以不要以为这是一个问题)
>通过查看任务管理器中的进程,Tomcat和JVisualVM都将作为同一Windows用户执行 @H_301_1@最后几点: @H_301_1@>我需要配置Servlet,所以使用JMX是不够的
>我能够在Windows XP机器(Java 7,Tomcat 7作为服务)上进行配置,所以似乎是Windows 7/64位的东西? @H_301_1@如果有人已经明确地解决了这个问题,解决方案将不胜感激。但是,只要知道其他人是否运行相同的配置 – Windows 7 64位,Java 7 64位,作为服务运行的Tomcat 7,这将是有用的。 @H_301_1@更新:而不是作为服务运行,我使用批处理文件运行Tomcat,并且都运行良好:运行作为服务是什么?
> Tomcat和JVisualVM都通过查看JVisualVM中的系统属性(再次使用Tomcat的JMX连接)并查看实际的TMP / TEMP目录,并确认PID文件为都存在
>文件系统是NTFS
> Windows用户在名称中没有下划线(注意:用户在名称中有一段时间,因为我们使用的形式为“firstname.lastname”的网络登录名,但是我没有查看其他Java应用程序的问题所以不要以为这是一个问题)
>通过查看任务管理器中的进程,Tomcat和JVisualVM都将作为同一Windows用户执行 @H_301_1@最后几点: @H_301_1@>我需要配置Servlet,所以使用JMX是不够的
>我能够在Windows XP机器(Java 7,Tomcat 7作为服务)上进行配置,所以似乎是Windows 7/64位的东西? @H_301_1@如果有人已经明确地解决了这个问题,解决方案将不胜感激。但是,只要知道其他人是否运行相同的配置 – Windows 7 64位,Java 7 64位,作为服务运行的Tomcat 7,这将是有用的。 @H_301_1@更新:而不是作为服务运行,我使用批处理文件运行Tomcat,并且都运行良好:运行作为服务是什么?
你几乎做了“”而不是作为一个服务运行,我使用批处理文件运行Tomcat,并且都运行良好:运行作为服务是什么“现在唯一的一个步骤是运行JVisualVM作为服务:)
@H_301_1@请参考
@H_301_1@https://blogs.oracle.com/nbprofiler/entry/monitoring_java_processes_running_as
@H_301_1@由于只能在与VisualVM相同的用户下运行的Java进程可以进行概要分析,因此只能将Windows服务(默认运行在系统帐户下)配置为Windows服务。请注意,由于安全性限制,这种方法在Windows Vista上不起作用,默认情况下会阻止服务显示任何UI。
@H_301_1@另一个选项是运行CMD.EXE作为本地系统运行,请参考下面。
@H_301_1@http://vicevoice.blogspot.in/2009/09/vaas-visualvm-as-service.html