2012-03-15 128 views
0

我在模塊中使用JOptionPane.showMessageDialog(null,ExNull)JOptionPane.showMessageDialog(null,ExNull)在部署到Weblogic服務器時不顯示

ExnullSQLException陷在catch塊中。

這裏我的問題是,當在Tomcat服務器上測試相同的時候,JOptionPane工作的很好,但是當在Weblogic服務器上部署相同時,彈出似乎不會彈出。

任何人都可以請在這裏幫忙,或者爲此提出一個替代方案嗎?

我得到的錯誤是:

java.awt.HeadlessException 
    at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159) 
    at java.awt.Window.<init>(Window.java:431) 
    at javax.swing.JOptionPane.getRootFrame(JOptionPane.java:1673) 
    at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:846) 
    at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:650) 
    at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:621) 
    at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:592) 

回答

0

當開發你不應該使用GUI報告錯誤的Web應用程序。顯然,WebLogic甚至通過以無頭模式運行(即不顯示GUI元素)而不允許這種情況。

在服務器應用程序中報告錯誤的常用方法是記錄它(例如,將堆棧跟蹤寫入文件)。周圍有許多日誌庫(例如Apache commons-logging,log4jSLF4J),甚至在Java的核心API中也是如此,請參閱API documentation of the java.util.logging package

編輯:如果你真的想顯示圖形用戶界面(我建議反對),它應該是可以修改的WebLogic配置:尋找-Djava.awt.headless=true並將其更改爲false

取決於你想這樣做有多個可供選擇的解決方法,你可以考慮一下:

  • 如果你要調試的東西「快速和骯髒的」,你可以簡單地寫出來,以System.out
  • 如果您想管理或監控您的Web應用程序,可以在您的Web應用程序中創建一個特殊的管理頁面。因此,您不需要單獨的GUI,因爲您可以像使用其他應用程序一樣使用瀏覽器訪問此管理頁面。
  • 另一種可能性是創建一個完整的獨立應用程序,並讓它與您的Web應用程序進行通信(例如通過連接到某個管理/監視/調試端口)。

最後兩種解決方法還可以讓您從開發人員計算機監控您的Web應用程序,而無需遠程控制服務器。

+0

這個任何workaroudn?假設你正在這樣做,因爲你想調查一些問題 – Zo72 2013-06-10 10:54:33

+0

@ Zo72:我編輯了我的答案。這對你有幫助嗎? – siegi 2013-06-10 16:49:52

相關問題