2009-07-23 73 views
9

最近我們的兩個客戶報告了我們的小程序問題。看着java插件控制檯,它充滿了ClassNotFoundException,因此我們的代碼都沒有執行。如何調試/記錄/跟蹤小程序加載問題?

我已經能夠使用磁盤上有0個可用空間的虛擬pc映像重現堆棧跟蹤,但是當我還原一些磁盤空間時問題消失,並且用戶告訴我他們的磁盤未滿;他們能夠創建新文件。

我們的小程序需要Java 6,有這樣的問題出現了更新1,10和JRE的14。我們也嘗試了不同的瀏覽器(IE和Firefox),清除瀏覽器和java緩存,...

如何調試或追蹤jvm如何加載我們的小程序?

我想,問題就出在Windows上一些安全指令,所以我使用Sysinternal的進程監視器記錄活動,但我真的不知道去哪裏看。

回答

0

我一直在尋找JDK的插件源,我發現日誌中有其他可用的調試信息,設置環境變量JPI_PLUGIN2_DEBUG。 不幸的是我仍然只能看到ClassNotFound的例外。

我已經找到了一個燕子所有異常插件代碼的,所以也許我的用戶的問題是有...

6

Java高速緩存是最有可能搞砸了。在控制面板中打開Java並刪除所有臨時文件以查看它是否消失。

Java控制檯登錄加載小程序可以被啓用,這有助於相當很多(即使該插件是非常難以理解)。請參閱http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/tracing_logging.html

+0

謝謝!我忘了在我的磁盤完整測試環境中啓用跟蹤。 現在我試過了,但它只顯示'java.io.IOException:寫入錯誤'。 沒有什麼路徑試圖寫或錯誤的原因的細節,所以我認爲它不會提供足夠的信息,如果我們使客戶端PC的跟蹤。 這是追蹤我們可以從JVM獲得的最大值嗎? – Serxipc 2009-07-24 08:59:41

+0

清理java緩存有助於您的用戶嗎? – 2009-07-24 09:40:07

+0

不。我們已經嘗試從java控制面板清除java緩存,並從temp目錄中刪除所有jar_cache * .tmp文件。我想這是一些窗口或網絡安全指令,但我不知道要繼續哪裏,所以我試圖獲取有關正在發生的事情的詳細日誌。 – Serxipc 2009-07-24 09:56:58

0

過類似的問題在不久前。在我們的案例中,問題似乎是applet標籤在網頁上的設置方式。如果它的順序錯誤或包含codebase屬性,則它將以6u10 +失敗。這適用於我們:

<applet name="DMGANTT" archive="DMGantt.zip" code="dm.applet.DMGanttApplet" 
width='100%' height='100%' mayscript="mayscript"> 
+0

我使用deployJava.js腳本編寫applet標記,並且不添加代碼庫屬性。 屬性如何以錯誤的順序?你有沒有因爲蠕蟲訂單而失敗的例子? – Serxipc 2009-07-28 09:51:36

+0

是的,如果我更改代碼和歸檔順序,6u10以某種方式在服務器上搜索DMGanttApplet,而不是在提供的歸檔中搜索。缺少哪些類 - 錯誤的堆棧跟蹤是什麼? – akarnokd 2009-07-28 10:21:59

+0

我試過你的建議與屬性順序,但問題依然存在。堆棧跟蹤中找不到的類是在code屬性中指定的類,因此沒有任何操作被執行。我可以在服務器日誌中看到具有該類的jar被請求。事實上,jar被請求的次數與頁面中applet的次數相同,但是當從一臺運行的pc上查看頁面時,它只會被請求一次。 – Serxipc 2009-07-28 13:24:54

0

我們有一個類似的問題,我們的客戶之一。我們發現它在某些版本的Java中與客戶端上的代理配置相關的是一個奇怪的錯誤。看到這篇文章的細節

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6723715

此外,我們的小程序出於不同的原因新版本的失敗。

現在,在類似的情況下,我請他們檢查javatester.org,讓我可以看到,如果小程序(一般)負載確定在自己的瀏覽器。如果該頁面加載OK,則它在我們的小程序(或頁面)上存在問題。否則這是他們配置中的問題。無論如何,我都會幫助他們,但調試起來更容易。