JCaptcha和SpringFramework

时间:2016-12-28 07:37:21

标签: java spring ubuntu tomcat7 jcaptcha

我已经为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天时间。

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类。

解决下面的错误检查

  • JDK已正确安装(,如果不重新安装
  • JAVA_HOME配置正确
  • 如果上述两项内容正确无误,请指定-Djava.awt.headless=true
  • 使用headless模式