5

我们使用的是 JBoss EAP 6;在生产环境之前一切正常。但是在生产中部署后,我们收到以下错误:

java.lang.NoClassDefFoundError: Could not initialize class javax.imageio.ImageIO 

在我们创建验证码的 servlet 之一中发生的错误。这是发生此错误的行:

ImageIO.write(bufferedImage, "png", baos); 

这是 Error 的堆栈跟踪:

Server:server-three] Caused by: java.lang.NoClassDefFoundError: Could not initialize class javax.imageio.ImageIO
[Server:server-three]   at org.fwcms.tc.servlet.Captcha.doGet(Captcha.java:150) [classes:]
[Server:server-three]   at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) [jboss-servlet-api_3.0_spec.jar:1.0.2.Final-redhat-1]
[Server:server-three]   at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec.jar:1.0.2.Final-redhat-1]
[Server:server-three]   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb.jar:7.2.2.Final-redhat-1]
[Server:server-three]   ... 36 more

这不会发生在任何其他环境中。我们正在将应用程序部署为 ear。解决此问题的任何建议/指示都会对我有很大帮助。

先感谢您。

问候, Manjunath

4

1 回答 1

2

我找到了解决方案。您必须在其他操作之前初始化 ImageIO。您可以通过添加:

static {
        ImageIO.scanForPlugins();
}

例如进入你的主要课程。

于 2016-02-11T13:45:45.983 回答