我已经为captcha创建了REST API - 在Spring框架中使用JCaptcha。
当我将war文件放在windows OS环境中的tomcat7服务器中时,一切正常。
对于部署,当我在Ubuntu 14.04中出现的tomcat7 web服务器中使用相同的war文件时,api突然开始提供http 500响应代码,但有以下异常:
org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class sun.awt.image.codec.JPEGImageEncoderImpl
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:820)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552)
javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
com.televital.vitalware.services.CORSFilter.doFilterInternal(CORSFilter.java:29)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
我已经为API的开发提供了以下链接
https://jcaptcha.atlassian.net/wiki/display/general/JCaptcha+and+the+SpringFramework
请帮助我。我花了2天时间。
答案 0 :(得分:0)
有两种可能性。
<JDK installation
folder>\jre\lib\rt.jar
包含在 JAVA_OPTS='-Djava.awt.headless=true'
中。所以检查这个jar已经存在于你的
Linux机器与否。第二个是您需要打开Linux机器中的Headless mode。在运行tomcat启动脚本之前,需要打开这样的无头模式
Response.Write("<script>alert('Open Message!');</script>");
答案 1 :(得分:0)
从堆栈跟踪中可以看出,在Ubuntu上,应用程序无法从sun.awt.image.codec.JPEGImageEncoderImpl
找到<JDK installation>\jre\lib\rt.jar
类。
解决下面的错误检查
JAVA_HOME
配置正确-Djava.awt.headless=true