forTEXT / catma

Computer Assisted Text Markup and Analysis
https://www.catma.de
GNU General Public License v3.0
87 stars 9 forks source link

java.lang.NullPointerException atde.catma.properties.CATMAPropertyKey.getValue(CATMAPropertyKey.java:113 #345

Closed fishfree closed 1 month ago

fishfree commented 2 months ago

I downloaded the pre-compiled 7.0.4 war file here, and then access, it showed errors as below: image

My environments: Open JDK 8, Tomcat 9, Ubuntu 22.04

maltem-za commented 2 months ago

@fishfree That looks like you didn't set up a properties file. You need to:

  1. Copy the template properties file to the web app root folder (the same location as the WAR file) and fill in appropriate values
  2. Copy the template SQLite DB to the SQLITE_DB_BASE_PATH in your properties file

After that CATMA should start successfully.

fishfree commented 2 months ago

@maltem-za Thank you! I did what you said and systemctl restart tomcat9, however, the error still exsits: image

maltem-za commented 2 months ago

@fishfree Please try placing the properties file within the WAR file, or alternatively extract the WAR file and have Tomcat work with that rather than the archive. If the error persists, please post the complete error text / stacktrace.

fishfree commented 2 months ago

@maltem-za You mean I need copy the catma.properties file under the auto-unzipped catma folder? I did it and restart tomcat9, still the same error.

maltem-za commented 2 months ago

@fishfree OK, I need to see the complete error text / stacktrace please.

fishfree commented 2 months ago

@maltem-za I check the tomcat log, there is no error log, just some access logs, not related with our issue. However, I found the page shows Failed to initialize database 500 error this morning. In the /var/lib/tomcat9/webapps/catma/catma.properties file, I set SQLITE_DB_BASE_PATH=/var/lib/catma/catma.db, which is downloaded from here.

# ls -al /var/lib/catma/catma.db
-rw-rw-r-- 1 tomcat tomcat 12288 Apr 15 11:57 /var/lib/catma/catma.db
maltem-za commented 2 months ago

@fishfree Change SQLITE_DB_BASE_PATH to /var/lib/catma/, it mustn't include the filename.

fishfree commented 2 months ago

@fishfree Thank you! However, the same error:

The underlying error message is:
Internal Error
Failed to initialize database
maltem-za commented 2 months ago

@fishfree I need to see the complete stacktrace to help further. I just tested again locally, and when something causes "Failed to initialize database" the root cause is definitely output, so it should end up in a Tomcat log file somewhere. You might need to modify your Tomcat configuration - the following could help:

https://serverfault.com/questions/805622/where-is-catalina-out-in-tomcat-9 https://sematext.com/blog/tomcat-logs/ https://tomcat.apache.org/tomcat-9.0-doc/logging.html

fishfree commented 2 months ago

@maltem-za Thank you! I remove the extracted folder and restart tomcat9, now the error changed and the log is as below:

<6>Starting ProtocolHandler ["http-nio-8080"]
<6>Server startup in [19360] milliseconds
java.lang.NullPointerException
    at de.catma.properties.CATMAPropertyKey.getValue(CATMAPropertyKey.java:113)
    at de.catma.ui.CatmaApplicationServlet$2.getSystemMessages(CatmaApplicationServlet.java:169)
    at com.vaadin.server.VaadinService.getSystemMessages(VaadinService.java:446)
    at com.vaadin.server.communication.UidlRequestHandler.getUINotFoundErrorJSON(UidlRequestHandler.java:191)
    at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:247)
    at com.vaadin.server.communication.PushHandler.onConnect(PushHandler.java:545)
    at com.vaadin.server.communication.PushAtmosphereHandler.onConnect(PushAtmosphereHandler.java:99)
    at com.vaadin.server.communication.PushAtmosphereHandler.onRequest(PushAtmosphereHandler.java:75)
    at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:225)
    at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:114)
    at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:67)
    at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:2297)
    at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:594)
    at org.atmosphere.websocket.DefaultWebSocketProcessor.open(DefaultWebSocketProcessor.java:224)
    at org.atmosphere.container.JSR356Endpoint.onOpen(JSR356Endpoint.java:264)
    at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.init(WsHttpUpgradeHandler.java:136)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:936)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:829)
java.lang.NullPointerException
    at de.catma.properties.CATMAPropertyKey.getValue(CATMAPropertyKey.java:113)
    at de.catma.ui.CatmaApplicationServlet$2.getSystemMessages(CatmaApplicationServlet.java:169)
    at com.vaadin.server.VaadinService.getSystemMessages(VaadinService.java:446)
    at com.vaadin.server.BootstrapHandler.getApplicationParameters(BootstrapHandler.java:797)
    at com.vaadin.server.BootstrapHandler$BootstrapContext.getApplicationParameters(BootstrapHandler.java:245)
    at com.vaadin.server.BootstrapHandler.appendMainScriptTagContents(BootstrapHandler.java:721)
    at com.vaadin.server.BootstrapHandler.setupMainDiv(BootstrapHandler.java:711)
    at com.vaadin.server.BootstrapHandler.synchronizedHandleRequest(BootstrapHandler.java:422)
    at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1637)
    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:464)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:829)
Apr 23, 2024 2:00:28 PM de.catma.ui.CatmaApplication showAndLogError
SEVERE: [not logged in] null
java.lang.NullPointerException
    at de.catma.properties.CATMAPropertyKey.getValue(CATMAPropertyKey.java:113)
    at de.catma.sqlite.SqliteService.<init>(SqliteService.java:18)
    at de.catma.ui.CatmaApplication.init(CatmaApplication.java:131)
    at com.vaadin.ui.UI.doInit(UI.java:771)
    at com.vaadin.server.communication.UIInitHandler.getBrowserDetailsUI(UIInitHandler.java:218)
    at com.vaadin.server.communication.UIInitHandler.synchronizedHandleRequest(UIInitHandler.java:76)
    at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1637)
    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:464)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:829)

Apr 23, 2024 2:00:28 PM de.catma.ui.CatmaApplication init
INFO: Session: 6AD260B29129B69D2E6898C03C51363A
Apr 23, 2024 2:00:28 PM com.vaadin.server.DefaultErrorHandler doDefault
SEVERE: 
java.lang.NullPointerException
    at de.catma.properties.CATMAPropertyKey.getValue(CATMAPropertyKey.java:113)
    at de.catma.ui.module.main.NotLoggedInMainView.initComponents(NotLoggedInMainView.java:69)
    at de.catma.ui.module.main.NotLoggedInMainView.<init>(NotLoggedInMainView.java:54)
    at de.catma.ui.login.Vaadin8InitializationService.newEntryPage(Vaadin8InitializationService.java:74)
    at de.catma.ui.CatmaApplication.init(CatmaApplication.java:142)
    at com.vaadin.ui.UI.doInit(UI.java:771)
    at com.vaadin.server.communication.UIInitHandler.getBrowserDetailsUI(UIInitHandler.java:218)
    at com.vaadin.server.communication.UIInitHandler.synchronizedHandleRequest(UIInitHandler.java:76)
    at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1637)
    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:464)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:829)

java.lang.NullPointerException
    at de.catma.properties.CATMAPropertyKey.getValue(CATMAPropertyKey.java:113)
    at de.catma.ui.CatmaApplicationServlet$2.getSystemMessages(CatmaApplicationServlet.java:169)
    at com.vaadin.server.VaadinService.getSystemMessages(VaadinService.java:446)
    at com.vaadin.server.communication.UidlWriter.write(UidlWriter.java:215)
    at com.vaadin.server.communication.UIInitHandler.getInitialUidl(UIInitHandler.java:293)
    at com.vaadin.server.communication.UIInitHandler.synchronizedHandleRequest(UIInitHandler.java:82)
    at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1637)
    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:464)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:829)
java.lang.NullPointerException
    at de.catma.properties.CATMAPropertyKey.getValue(CATMAPropertyKey.java:113)
    at de.catma.ui.CatmaApplicationServlet$2.getSystemMessages(CatmaApplicationServlet.java:169)
    at com.vaadin.server.VaadinService.getSystemMessages(VaadinService.java:446)
    at com.vaadin.server.communication.UidlWriter.write(UidlWriter.java:215)
    at com.vaadin.server.communication.UidlRequestHandler.writeUidl(UidlRequestHandler.java:125)
    at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:93)
    at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1637)
    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:464)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:829)
maltem-za commented 2 months ago

@fishfree You've gone back to missing properties/config now.

fishfree commented 2 months ago

But which properties/config are missing? :-(

maltem-za commented 2 months ago

@fishfree You said that you removed the extracted folder, and it looks like you are now missing the catma.properties file again.

fishfree commented 1 month ago

@maltem-za Thank you for your patience. Finally I realized that the java version has been changed to 11 by another user on the server. I changed it back to 8 and can access now.