Linux上托管的Web应用程序中JFileChooser showOpenDialog的HeadlessException

时间:2018-10-26 18:30:59

标签: linux spring swing tomcat jfilechooser

我在Linux机器上部署了一个webapp,该webapp的代码打开一个对话框来选择下载路径,下面是使用JFileChooser的代码。

    JFileChooser fileChooser = new JFileChooser();

    fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

    fileChooser.showOpenDialog(fileChooser);

    homeFile = fileChooser.getSelectedFile().getAbsolutePath()

在Windows计算机上托管的Web应用程序上,它运行正常,并且可以正确打开对话框。但是对于Linux上托管的同一个Web应用程序,当我们尝试打开JFileChooser对话框时,它将抛出异常。

  

HTTP状态500-请求处理失败;嵌套异常为   java.awt.HeadlessException:输入异常报告

     

消息请求处理失败;嵌套异常为   java.awt.HeadlessException:

     

说明服务器遇到内部错误,阻止了它   满足此请求。

     

例外

     

org.springframework.web.util.NestedServletException:请求   处理失败;嵌套异常是java.awt.HeadlessException:否   设置了X11 DISPLAY变量,但是该程序执行了一个操作   这需要它。     org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)     org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)     javax.servlet.http.HttpServlet.service(HttpServlet.java:650)     org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)     javax.servlet.http.HttpServlet.service(HttpServlet.java:731)     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)     com.accolite.app.filters.CORSFilter.doFilterInternal(CORSFilter.java:24)     org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)   根本原因

     

java.awt.HeadlessException:未设置X11 DISPLAY变量,但这   程序执行了需要它的操作。     java.awt.GraphicsEnvironment.checkHeadless(未知源)     java.awt.Window。(未知源)java.awt.Frame。(未知   来源)java.awt.Frame。(未知来源)     javax.swing.SwingUtilities $ SharedOwnerFrame。(未知来源)     javax.swing.SwingUtilities.getSharedOwnerFrame(未知来源)     javax.swing.JOptionPane.getRootFrame(未知来源)     javax.swing.JOptionPane.getWindowForComponent(未知来源)     javax.swing.JOptionPane.getWindowForComponent(未知来源)     javax.swing.JFileChooser.createDialog(未知源)     javax.swing.JFileChooser.showDialog(未知源)     javax.swing.JFileChooser.showOpenDialog(未知来源)

我想了解为什么在Linux上托管该应用程序时会产生问题,而在Windows上托管同一应用程序时却能正常工作。以及我们如何解决这个问题。

0 个答案:

没有答案