Hello - I am encountering a problem, on OpenSuSE15.0 and on OpenSuSE15.2, which suddenly appeared, possibly via an update or possibly from me working on Tomcat and doing something that I can't find a way to resolve. I am now getting a rather obtuse set of error messages for all my webapps, which is coming from a series of stack walk-back traces (shown without the actual program trace messages) from the Tomcat/Catalina logfile -
9-Dec-2020 13:47:22.732 SEVERE [main] org.apache.catalina.startup.HostConfig.beforeStart Unable to create directory for deployment: [/usr/share/tomcat/webapps] 19-Dec-2020 13:47:22.734 SEVERE [main] org.apache.catalina.core.ContainerBase.startInternal A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@704921a5] Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@704921a5] Caused by: java.lang.IllegalArgumentException: The main resource set specified [/usr/share/tomcat/webapps] is not valid The last error message - java.lang.IllegalArgumentException seems to the the pertinent one telling me the path /usr/share/tomcat/webapps is not valid. Doesn't tell me why it is invalid, sigh, when will programmers write decent user friendly error messages which can actually help? Anywise, on my system I am guessing that the problem is that this app path is actually a double soft link i.e. quasar:/usr/share/tomcat # ll -d /usr/share/tomcat/webapps lrwxrwxrwx 1 root tomcat 19 Jul 12 2019 /usr/share/tomcat/webapps -> /srv/tomcat/webapps quasar:/usr/share/tomcat # ll -d /srv/tomcat/webapps lrwxrwxrwx 1 root tomcat 38 Nov 23 14:58 /srv/tomcat/webapps -> /websites/home/marc/domain.com quasar:/usr/share/tomcat # ll -d /websites/home/marc/domain.com/ drwxrwxr-x 39 marc users 4096 Aug 13 23:52 /websites/home/marc/domain.com/ I did try shortening this to a single soft link but that didn't change anything. The only other possibility I can think of is that Tomcat may have troubles reaching a file system on a different mount point??? /webapps/... is on a different disk drive and is a mount point. These two environment variables are defined in tomcat.conf - CATALINA_HOME="/usr/share/tomcat" CATALINA_BASE="/usr/share/tomcat" The host declaration for this application, in server.xml, is - <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <Context path="" docBase=""> <Resources allowLinking="true" /> </Context> </Host> The context.xml file is - <Context> <WatchedResource>WEB-INF/web.xml</WatchedResource> <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource> <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource> <Resources allowLinking="true" /> </Context> Sure would appreciate any help offered and thanks in advance. I been spending lots of hours trying to noodle this problem out and just not getting anywhere! A puzzler is that I had Tomcat working on OpenSuSE 15.0 at one time and this error message surfaced when I was trying to port Tomcat to OpenSuSE 15.2. I may have done something bad that broke Tomcat on OpenSuSE 15.0 but can't remember what I might had done that might have broken Tomcat. A couple other tidbits of information that might prove helpful - # tomcat version Server version: Apache Tomcat/9.0.21 Server built: Jul 4 2019 12:00:00 UTC Server number: 9.0.21.0 OS Name: Linux OS Version: 4.12.14-lp150.12.82-default Architecture: amd64 JVM Version: 1.8.0_222-b10 JVM Vendor: IcedTea java -version openjdk version "1.8.0_222" OpenJDK Runtime Environment (IcedTea 3.13.0) (build 1.8.0_222-b10 suse-lp150.2.19.1-x86_64) OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode) Thanks, Marc.... -- --... ...-- .----. ... -.. . .-- .- --... .--. -..- .-- -- .- .-. -.-. <b>Computers: the final frontier. These are the voyages of the user Marc.<br> His mission: to explore strange new hardware. To seek out new software and new applications.<br> To boldly go where no Marc has gone before!<br></b>