VisualVM 1.3.7无法从GlassFish获取Java Web应用程序列表

VisualVM 1.3.7无法从GlassFish获取Java Web应用程序列表,java,netbeans-7,glassfish-4,visualvm,Java,Netbeans 7,Glassfish 4,Visualvm,当我运行Java应用程序(带有main方法的简单应用程序)时,VisualVM会将其列为正在运行的应用程序。然而,在NetBeans上运行Java Web应用程序之后,VisualVM 1.3.7只在Local下显示了NetBeans IDE 7.2.1(pid 4708)、VisualVM和GlassFish(pid 2136) 在Netbeans配置中,我使用的是JDK1.7,J2EE版本是JavaEE6,概要文件设置为Web,它运行在GlassFish服务器4上 此外,我还根据的“无法从G

当我运行Java应用程序(带有main方法的简单应用程序)时,VisualVM会将其列为正在运行的应用程序。然而,在NetBeans上运行Java Web应用程序之后,VisualVM 1.3.7只在Local下显示了NetBeans IDE 7.2.1(pid 4708)、VisualVM和GlassFish(pid 2136)

在Netbeans配置中,我使用的是JDK1.7,J2EE版本是JavaEE6,概要文件设置为Web,它运行在GlassFish服务器4上

此外,我还根据的“无法从GlassFish获取web应用程序列表”部分将web容器设置为高

根据我的研究来解决这个问题,我下载并安装了VisualVM Extensions插件,但毫无效果

我使用了以下所有方法来运行VisualVM

  1) I ran it by executing the VisualVM.exe file
  2) using following command in console 
      visualvm --jdkhome "C:\Program Files\Java\jdk1.7.0_13" --userdir "C:\Users\Alex\AppData"
  3) using following command in console
      visualvm --jdkhome "C:\Program Files\Java\jdk1.7.0_13" --userdir "C:\Documents and Settings\Alex\AppData\Roaming\VisualVM\1.3.7" 

好的,VisualVM将简单地查看JVM的运行情况。当您有一个Web应用程序在Glassfish中运行时,就会有一个包含Glassfish的JVM(您的Web应用程序托管在该JVM中)。VisualVM只能看到JVM层上运行的内容。对于承载glassfish的JVM,它不会与使用命令行方法直接运行Java类时有任何不同

除非有一个用于Glassfish的VisualVM插件知道如何查询相关的JMX bean以提取其中定义的容器细节,否则stock standard VisualVM只会将容器视为任何其他JVM


如果您想查看Glassfish容器中部署了哪些Web应用程序(或其他任何应用程序),您可以使用它的Web控制台,如果您想以编程方式检查它,可以使用它的JMX接口。

我假设“在NetBeans上运行我的Java Web应用程序”意味着它正在使用Glassfish容器来承载您的web应用程序?这就是为什么你能看到玻璃鱼的过程。当您声明“当我运行Java应用程序时”,这意味着什么?您是否有一个jar文件,其中包含像Jetty这样的嵌入式Web服务器?如果您直接从Java命令运行它,您会将其视为自己的进程。更多关于执行环境差异的详细信息会有所帮助。@EdH yiu是对的,我的服务器是GlassFish。关于java应用程序,我指的是一个非web java应用程序,它是一个带有main方法的简单应用程序。