2012-03-15 123 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

相关问题