2

我正在尝试通过使用 Xuggle 组合一组在线可用的图像来创建视频。我使用 JSP 和 Java 将其实现为服务。我正在使用tomcat服务器。当我将它部署到在 Windows 中运行的本地服务器中时,它工作正常。但是当我将它部署到 linux 服务器时,我得到了以下错误。

org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:500)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

我猜这是在没有显示器的环境中发生的无头问题。有人可以告诉我如何解决这个问题吗?我在网上找到PJA toolkit可以解决这个问题的。但是我如何在linux中使用它?如果有人遵循了这种方法,请给我逐步说明如何在 linux 中使用它。

4

1 回答 1

1

我设法解决了这个问题。当 UNIX 机器(也称为无头环境)上没有可用的 X11 Display 或 Windows 上的 GDI 资源不足时,在 JDK 版本 < 1.4 下无法使用 java.awt.Graphics 方法计算离屏图像,即使您的程序不需要显示这些图像。通常,这种情况发生在 servlet 返回动态生成的图像(如饼图、图表或 Web 计数器)时。如果您的 JDK 版本 <1.4,请升级它,因为在 JDK 1.4 及更高版本中,此问题已解决。然后你需要启用无头模式。它是这样完成的:如果您在 Linux 中,请在 /etc/profile 文件中输入 export CATALINA_OPTS="-DJava.awt.headless=true。

希望这会帮助遇到同样问题的其他人。

于 2011-03-25T08:35:44.903 回答