INL / corpus-frontend

BlackLab Frontend, a feature-rich corpus search interface for BlackLab.
16 stars 7 forks source link

Exception: 500 Error instantiating servlet class [nl.inl.corpuswebsite.MainServlet] #479

Closed fishfree closed 4 months ago

fishfree commented 5 months ago
jakarta.servlet.ServletException: Error instantiating servlet class [nl.inl.corpuswebsite.MainServlet]
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:673)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
    org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
    org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736)
    org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
    org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
    org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
    java.base/java.lang.Thread.run(Thread.java:829)

Root cause:

java.lang.ClassNotFoundException: nl.inl.corpuswebsite.MainServlet
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1353)
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1165)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:673)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
    org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
    org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736)
    org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
    org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
    org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
    java.base/java.lang.Thread.run(Thread.java:829)

Need I set some authentication-related settings in the file corpus-frontend.properties and even somewhere else?

KCMertens commented 5 months ago

That's a strange one, is this the complete error?

Just a guess, but you might need to use an older version of the servlet container, as we're still on javax.servlet and I notice jakarta.servlet in the error. What version of tomcat/glassfish/etc. are you using, and is this in Docker?

We're slow with the update because BlackLab has a module that uses SOLR, which still requires javax at this moment, and corpus-frontend follows BlackLab so you can deploy them on the same server.

fishfree commented 5 months ago

My Tomcat is the latest 10.x version. Thank you! My BlackLab server is 3.x.

KCMertens commented 5 months ago

Tomcat 9 should work for you. I've added a note at the top of the readme about Tomcat 10 not being supported currently.

fishfree commented 4 months ago

Yes, tomcat 9 works. Thank you!