DHIS2 setup error

Hi Team, am a new user

Question: I am setting up a vanila DHIS2 local server on my personal WINDOWS 11 laptop.
I installed Java version 21.0.2.0
I installed postgresql 16.1
Tomcat 9.0.85
DHIS2 40/dhis2-stable-latest.war

My apache tomcat is working properly.
But when i access localhost:8080/dhis2 i keep getting the error
The requested resource [/dhis2] is not available

I have checked all my environment variables are set correctly. Multiple times
The log file catalina gives an error
30-Jan-2024 08:28:15.074 SEVERE [main] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive [C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\webapps\dhis2.war]

dhis.conf is mentioned below. username: postgres with no password
Based on 2 days i spent trouble shooting i think i have narrowed it down to
either versions mismatch
or wrong configuration of dhis.conf file

Can someone please help me with this?

dhis.conf
# ----------------------------------------------------------------------
# Database connection
# ----------------------------------------------------------------------

# JDBC driver class
connection.driver_class = org.postgresql.Driver

# Database connection URL (assuming the database is running on localhost and default port)
connection.url = jdbc:postgresql://localhost:5432/dhis2

# Database username
connection.username = postgres

# Database password (set this if your database has a password)
connection.password =

# ----------------------------------------------------------------------
# Server
# ----------------------------------------------------------------------

# Enable secure settings if deployed on HTTPS, default 'off', can be 'on'
# server.https = on

# Server base URL (uncomment and set this if accessing DHIS2 through a specific URL)
# server.base.url = https://yourserver.com

Hi @SpanishEyez

I see https turned on. Could it be that problem? Did you configure HTTPS?

no i did not.
how to turn it off?

Unless this is commented out, it should be off.

Actually it is commented out. only mentiioned beloow is not commented out

connection.driver_class = org.postgresql.Driver

connection.url = jdbc:postgresql://localhost:5432/dhis2

connection.username = postgres

connection.password =

I would assume you would also need a password for your Postgres DB connection? Obviously, do not post it here, but it should not be blank.

1 Like

i have kept no password. hence blank

Hi @SpanishEyez

I think what Jason means is that it shouldn’t be blank.

Please create a password for the database and try to use it. See if that solves the issue.

Thanks!

tried with a new password
still the same error

postgres=# \l
List of databases
Name | Owner | Encoding | Locale Provider | Collate | Ctype | ICU Locale | ICU Rules | Access privileges
-----------±---------±---------±----------------±----------------------------±----------------------------±-----------±----------±----------------------
dhis2 | postgres | UTF8 | libc | English_United Kingdom.1252 | English_United Kingdom.1252 | | |
postgres | postgres | UTF8 | libc | English_United Kingdom.1252 | English_United Kingdom.1252 | | |
template0 | postgres | UTF8 | libc | English_United Kingdom.1252 | English_United Kingdom.1252 | | | =c/postgres +
| | | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | libc | English_United Kingdom.1252 | English_United Kingdom.1252 | | | =c/postgres +
| | | | | | | | postgres=CTc/postgres
(4 rows)

so i just tried with a hello world war file and it works fine. the webpage is opening

can anyone please help me? @dhis2-projects

My dhis.conf file

Database connection

connection.dialect = org.hibernate.dialect.PostgreSQLDialect
connection.driver_class = org.postgresql.Driver
connection.url = jdbc:postgresql://localhost:5432/dhis2
connection.username = dhis
connection.password = *****

Hibernate and other configurations

hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
hibernate.cache.region.factory_class = org.hibernate.cache.jcache.JCacheRegionFactory
hibernate.cache.use_structured_entries = true
hibernate.cache.use_minimal_puts = false
hibernate.cache.use_query_cache = true
hibernate.cache.use_second_level_cache = true
hibernate.hbm2ddl.auto = update

Server configuration

server.base.url = http://localhost:8080

File store configuration

filestore.provider = filesystem
filestore.location = /opt/dhis2/files
filestore.container = your_container_name
filestore.identity = your_identity
filestore.secret = your_secret

Please provide a copy of your dhis.log or catalina.out file from when you start the server to when the error occurs. There is simply not enough information from the snippet above to provide any context.

i am unable to upload cuz m a new user but here it is catalina

31-Jan-2024 13:02:07.677 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.85
31-Jan-2024 13:02:07.681 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Jan 5 2024 08:28:07 UTC
31-Jan-2024 13:02:07.682 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.85.0
31-Jan-2024 13:02:07.682 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 11
31-Jan-2024 13:02:07.683 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 10.0
31-Jan-2024 13:02:07.683 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
31-Jan-2024 13:02:07.683 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: C:\Program Files\Java\jdk-21
31-Jan-2024 13:02:07.683 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 21.0.2+13-LTS-58
31-Jan-2024 13:02:07.683 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
31-Jan-2024 13:02:07.684 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85
31-Jan-2024 13:02:07.684 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85
31-Jan-2024 13:02:07.696 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
31-Jan-2024 13:02:07.697 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
31-Jan-2024 13:02:07.697 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
31-Jan-2024 13:02:07.697 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
31-Jan-2024 13:02:07.698 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
31-Jan-2024 13:02:07.698 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\conf\logging.properties
31-Jan-2024 13:02:07.699 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
31-Jan-2024 13:02:07.699 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
31-Jan-2024 13:02:07.699 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
31-Jan-2024 13:02:07.699 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
31-Jan-2024 13:02:07.700 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85
31-Jan-2024 13:02:07.700 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85
31-Jan-2024 13:02:07.700 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\temp
31-Jan-2024 13:02:07.712 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [C:\Program Files\Java\jdk-21\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Python311\Scripts;C:\Python311;C:\Program Files\Oculus\Support\oculus-runtime;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Program Files (x86)\HP\IdrsOCR_15.2.10.1114;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\ProgramData\chocolatey\bin;C:\Program Files\nodejs;C:\Program Files\dotnet;C:\Program Files\Java\jdk-21\bin;C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\bin;C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\lib;C:\Users\matha\AppData\Local\Microsoft\WindowsApps;C:\Users\matha\AppData\Roaming\npm;.]
31-Jan-2024 13:02:08.201 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler [“http-nio-8080”]
31-Jan-2024 13:02:08.225 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [764] milliseconds
31-Jan-2024 13:02:08.276 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
31-Jan-2024 13:02:08.276 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.85]
31-Jan-2024 13:02:08.307 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\webapps\dhis2.war]
31-Jan-2024 13:02:26.313 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
31-Jan-2024 13:02:28.212 SEVERE [main] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive [C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\webapps\dhis2.war]
java.lang.IllegalStateException: Error starting child
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:686)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:661)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1025)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1919)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:826)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:476)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1619)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:318)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:114)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:345)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:893)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:794)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:248)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:921)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/dhis2]]
at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:419)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:186)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683)
… 35 more
Caused by: java.lang.IllegalStateException: Properties could not be loaded
at org.hisp.dhis.external.conf.DefaultDhisConfigurationProvider.loadDhisConf(DefaultDhisConfigurationProvider.java:297)
at org.hisp.dhis.external.conf.DefaultDhisConfigurationProvider.init(DefaultDhisConfigurationProvider.java:102)
at org.hisp.dhis.webapi.servlet.DhisWebApiWebAppInitializer.getConfig(DhisWebApiWebAppInitializer.java:87)
at org.hisp.dhis.webapi.servlet.DhisWebApiWebAppInitializer.onStartup(DhisWebApiWebAppInitializer.java:57)
at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:174)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4904)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
… 36 more
Caused by: org.hisp.dhis.external.location.LocationManagerException: File C:\Users\matha\DHIS2_HOME\dhis.conf cannot be read
at org.hisp.dhis.external.location.DefaultLocationManager.getFileForReading(DefaultLocationManager.java:203)
at org.hisp.dhis.external.location.DefaultLocationManager.getInputStream(DefaultLocationManager.java:177)
at org.hisp.dhis.external.location.DefaultLocationManager.getInputStream(DefaultLocationManager.java:171)
at org.hisp.dhis.external.conf.DefaultDhisConfigurationProvider.loadDhisConf(DefaultDhisConfigurationProvider.java:289)
… 42 more
31-Jan-2024 13:02:28.218 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\webapps\dhis2.war] has finished in [19,910] ms
31-Jan-2024 13:02:28.221 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\webapps\helloworld.war]
31-Jan-2024 13:02:28.350 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\webapps\helloworld.war] has finished in [129] ms
31-Jan-2024 13:02:28.352 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\webapps\docs]
31-Jan-2024 13:02:28.413 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\webapps\docs] has finished in [61] ms
31-Jan-2024 13:02:28.414 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\webapps\examples]
31-Jan-2024 13:02:29.086 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\webapps\examples] has finished in [673] ms
31-Jan-2024 13:02:29.087 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\webapps\host-manager]
31-Jan-2024 13:02:29.161 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\webapps\host-manager] has finished in [74] ms
31-Jan-2024 13:02:29.163 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\webapps\manager]
31-Jan-2024 13:02:29.228 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\webapps\manager] has finished in [65] ms
31-Jan-2024 13:02:29.230 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\webapps\ROOT]
31-Jan-2024 13:02:29.264 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\Users\matha\apache-tomcat-9.0.85\apache-tomcat-9.0.85\webapps\ROOT] has finished in [35] ms
31-Jan-2024 13:02:29.270 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [“http-nio-8080”]
31-Jan-2024 13:02:29.313 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [21086] milliseconds

It seems pretty clear what the problem is from this line.

2 Likes

i have checked
there is no issue with file access. the environment variables are also setup correctly. what could be the reason?

@SpanishEyez well, from the error it seems pretty clear that the user which is running Tomcat cannot access that file. Here is the relevant line of source code in DHIS2:


    if (!canReadFile(file)) {
      throw new LocationManagerException("File " + file.getAbsolutePath() + " cannot be read");
    }

So again, its really clear that the server cannot read the file. Have you tried running Tomcat as the administrator?

Hi Jason, i am using it on my local machine. there is only 1 user account and it has admin rights

Maybe try and make your directory name lower case…

nopes. did not work