2016-12-28 46 views
0

我爲captcha創建了REST API - 在spring框架中使用JCaptcha。JCaptcha和SpringFramework

當我將war文件放在windows操作系統環境中的tomcat7服務器中時,一切正常。

對於部署,當我使用tomcat7 Web服務器相同的戰爭文件,該文件目前在Ubuntu 14.04的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

請幫me.It alredy把我的2天。

回答

0

有兩種可能性。

  • sun.awt.image.codec.*包含在<JDK installation folder>\jre\lib\rt.jar中。所以檢查這個jar是否已經存在於你的Linux機器中或者不存在。
  • 第二個是,你需要打開Headless mode在你的Linux machine.Before你運行Tomcat啓動腳本,你需要打開無頭模式,這樣

    JAVA_OPTS='-Djava.awt.headless=true' 
    
+0

謝謝立即重播。 –

+0

終於得到了解決方案,因爲它實際上是因爲open-jdk.I刪除了它並安裝了oracle-java8-installer,其實際上像任何事情一樣工作。 –

0

從堆棧跟蹤它很顯然,在Ubuntu上,應用程序無法從<JDK installation>\jre\lib\rt.jar找到sun.awt.image.codec.JPEGImageEncoderImpl類。

要解決下面

  • JDK錯誤校驗是否正確安裝(如果不是重新安裝
  • JAVA_HOME配置正確
  • 如果上述兩個被正確然後通過指定使用headless模式-Djava.awt.headless=true
+0

謝謝你的建議。 –

+0

終於得到了解決方案,實際上是因爲open-jdk.I刪除了它並安裝了oracle-java8-installer,其實際上像魅力一樣工作。 –

相關問題