我们正在使用JBoss EAP 6;一切都运作良好,直到生产环境。但是在生产中部署后,我们得到以下错误:
java.lang.NoClassDefFoundError: Could not initialize class javax.imageio.ImageIO
我们正在创建Captcha的一个servlet中发生错误。这是发生此错误的行:
ImageIO.write(bufferedImage, "png", baos);
以下是错误的堆栈跟踪:
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
这不会发生在任何其他环境中。我们正在部署应用程序。解决这个问题的任何建议/指示都会对我有所帮助。
提前谢谢你。
此致 Manjunath
答案 0 :(得分:2)
我找到了解决方案。 您必须在其他操作之前初始化ImageIO。 您可以通过添加:
来完成此操作static {
ImageIO.scanForPlugins();
}
例如进入您的主课程。