何时部署到Weblogic服务器时不显示JOptionPane.showMessageDialog(null,ExNull)

时间:2012-03-15 08:03:26

标签: java joptionpane

我在我的模块中使用JOptionPane.showMessageDialog(null,ExNull)

Exnull是陷阱中陷阱的SQLException

我的问题是在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)

1 个答案:

答案 0 :(得分:0)

开发Web应用程序时,不应使用GUI来报告错误。显然,WebLogic甚至不允许在无头模式下运行(即不能显示GUI元素)。

在服务器应用程序中报告错误的常用方法是记录它(例如将堆栈跟踪写入文件)。周围有许多日志库(例如Apache commons-logginglog4jSLF4J),简单的日志库甚至在Java的核心API中,请参阅API documentation of the java.util.logging package

编辑:如果您真的想要显示GUI(我建议不要使用它),应该可以修改WebLogic配置:查找-Djava.awt.headless=true并将其更改为{{1 }}

根据您的想法,您可以考虑多种替代解决方法:

  • 如果你想调试一些东西&#34;快速而又肮脏&#34;,你可以简单地把它写到false
  • 如果要管理或监控Web应用程序,可以在Web应用程序中创建一个特殊的管理页面。因此,您不需要单独的GUI,因为您可以像使用其他应用程序一样使用浏览器访问此管理页面。
  • 另一种可能性是创建一个完整的独立应用程序,并让它与您的Web应用程序通信(例如,通过连接到某个管理/监视/调试端口)。

最后两个解决方法还可让您从开发人员计算机监控Web应用程序,而无需远程控制服务器。