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>