2014-03-06 70 views
0

當我運行Java應用程序(帶有主要方法的簡單應用程序)時,VisualVM將其列爲正在運行的應用程序。但是,在NetBeans上運行我的Java Web應用程序之後,VisualVM 1.3.7僅在Local下顯示NetBeans IDE 7.2.1(pid 4708),VisualVM和GlassFish(pid 2136)。VisualVM 1.3.7無法從GlassFish獲得Java Web應用程序列表

在NetBeans配置,我使用JDK 1.7中,J2EE版本是java EE6,配置文件設置爲網絡,它是GlassFish應用服務器上運行4

我設立的Web容器高的基礎上, 「不能從GlassFish獲取Web應用程序列表」部分this

基於我研究解決的問題,我下載並安裝了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" 
+1

我假設「在NetBeans上運行我的Java Web應用程序」意味着它使用Glassfish容器託管您的Web應用程序?所以這就是爲什麼你可以看到Glassfish進程。當你陳述「當我運行Java應用程序時」,這是什麼意思?你有一個嵌入式Web服務器如Jetty的jar文件嗎?如果您直接從Java命令運行它,則會將其視爲自己的進程。有關執行環境中任何差異的更多細節將會有所幫助。 – EdH

+0

@EdH yiu是我的服務器是GlassFish。關於java應用程序我的意思是一個非web應用程序,它是一個簡單的主要方法。 – AlexCartio1

回答

3

好的,所以VisualVM只是看看運行的JVM。當您在Glassfish中運行Web應用程序時,會有一個包含Glassfish的JVM(其中包含Web應用程序託管在其中)。 VisualVM只能看到在JVM層運行的是什麼。與使用命令行方法直接運行Java類的情況相比,它不會看到JVM託管glassfish。

除非有Glassfish的VisualVM插件,那裏知道如何查詢相關的JMX bean以提取定義的Container細節,股票標準VisualVM只會將容器看作其他任何JVM。

如果您想查看Glassfish容器中部署的Web應用程序(或其他任何內容),可以使用它的Web控制檯或其JMX接口(如果要以編程方式檢查它)。

相關問題