Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NoClassDefFoundError,但类在部署WAR文件后存在_Java_Tomcat_Servlets_Tesseract - Fatal编程技术网

Java NoClassDefFoundError,但类在部署WAR文件后存在

Java NoClassDefFoundError,但类在部署WAR文件后存在,java,tomcat,servlets,tesseract,Java,Tomcat,Servlets,Tesseract,我有一个基于servlet的应用程序,当我在Eclipse中运行它时,它可以工作。我已经创建了一个WAR文件并将其部署到Tomcat。部署后,我在webapps/目录中找到我的WAR项目的解包文件 但是,当我尝试通过url打开servlet时,会出现以下错误: exception javax.servlet.ServletException: Servlet execution threw an exception root cause java.lang.NoClassDefFoundEr

我有一个基于servlet的应用程序,当我在Eclipse中运行它时,它可以工作。我已经创建了一个WAR文件并将其部署到Tomcat。部署后,我在webapps/目录中找到我的WAR项目的解包文件

但是,当我尝试通过url打开servlet时,会出现以下错误:

exception

javax.servlet.ServletException: Servlet execution threw an exception
root cause

java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.tesseract$TessBaseAPI
com.gorcer.iseeyou.FounderMgr.prepareEnv(FounderMgr.java:80)
com.gorcer.iseeyou.Api.doGet(Api.java:54)
javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.56 (Debian) logs.
完整堆栈:

май 19, 2016 5:52:03 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [ApiServlet] in context with path [] threw exception [Servlet execution threw an exception] with root cause
java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.tesseract$TessBaseAPI
    at com.gorcer.iseeyou.FounderMgr.prepareEnv(FounderMgr.java:80)
    at com.gorcer.iseeyou.Api.doGet(Api.java:54)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
我查看了WEB-INF/lib,找到了“tesseract-3.04-1.1.jar”。它包含名为“tesseract$TessBaseAPI.class”的缺少类


为什么不包括它?

您可以发布整个异常堆栈吗?由于某些原因,类加载器没有加载该类。查看/logs/catalina.log,看看是否可以更好地了解原因。请将您的tesseract-3.04-1.1.jar放到tomcat库中,然后重试?希望问题能得到解决。这有帮助吗?谢谢@tak3shi,这对我有帮助。