Mark,
On 12/13/25 11:44 PM, Mark Foley wrote:
From [email protected] Fri Dec 12
19:34:05 2025
Authentication-Results: server.novatec-inc.com;
dkim=fail reason="signature verification failed" (2048-bit key)
header.d=gmail.com [email protected] header.b=APW3uc4B
Authentication-Results: apache.org; auth=none
X-Spam-Status: No, score=-8.8 required=5.0 tests=BAYES_00,
FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,
MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,RCVD_IN_MSPIKE_H5,
RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,USER_IN_DEF_SPF_WL
autolearn=ham autolearn_force=no version=3.4.6-_revision__1.0__
Authentication-Results: spamproc1-he-fi.apache.org (amavisd-new);
dkim=pass (2048-bit key) header.d=gmail.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1765585991; x=1766190791;
darn=tomcat.apache.org;
h=message-id:in-reply-to:to:references:date:subject:mime-version:from
:from:to:cc:subject:date:message-id:reply-to;
bh=DO1/BPpYzxh48vytKsb8h26b2Dd+yXPLR56DBPQHtGE=;
b=APW3uc4BoTqp+3hwzGQC242zLvz1Guy+psslG7miZK6XXGqVw3UQEA96NtrUvy0nQl
bbyj4h3hhnkZQ1Gg47f6X0EzWXOGVj7z5e6E+kHMVI793XSZyLW4AQDjJGNxBIcpRx/+
k3CORPLLfjZiyZVG4UiGjOcuUZ811fuGQS4Z+ILtB+WKhP5ShfaByAp5dKKh/OkF5I6w
2shumQiN17xeU5NfN3CdGco9FNTfaJvXmmkvtmGetbBPyKrAq3Ysb6QNWfKJ4CBErwZD
Ga05t2sBN9TcE6EDyF89V2XnQd27ALN86QmDNVZro9hZWK/4I0cru3vdkMbTiC1T+JzS
1gKw==
Subject: Re: 'for each' statements are only available if source level is 1.5
or greater
Date: Fri, 12 Dec 2025 18:32:59 -0600
To: Tomcat Users List <[email protected]>
From: Chuck Caldarale <[email protected]>
X-Spam-Report:
* -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1%
* [score: 0.0000]
* 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level
* mail domains are different
* 0.0 RCVD_IN_MSPIKE_H5 RBL: Excellent reputation (+5)
* [3.227.148.255 listed in wl.mailspike.net]
* -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at https://www.dnswl.org/,
* high trust
* [3.227.148.255 listed in list.dnswl.org]
* -1.0 SPF_HELO_PASS SPF: HELO matches SPF record
* -0.0 USER_IN_DEF_SPF_WL From: address is in the default SPF
* welcome-list
* 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail
* provider
* [n828cl[at]gmail.com]
* -0.1 SPF_PASS SPF: sender matches SPF record
* 0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and
* EnvelopeFrom freemail headers are different
* 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders
* -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list
* manager
X-Spam-Checker-Version: SpamAssassin 3.4.6-_revision__1.0__ (2021-04-09) on
server.novatec-inc.com
On 2025 Dec 12, at 16:11, Mark Foley <[email protected]> wrote:
On Fri Dec 12 14:08:03 2025 Chuck Caldarale <[email protected]> wrote:
On 2025 Dec 12, at 12:02, Mark Foley <[email protected]> wrote:
On Fri Dec 12 06:54:21 2025 Mark Thomas <[email protected]> wrote:
On 12/12/2025 05:17, Mark Foley wrote:
<snip/>
The "source level is 1.5 or greater" is on the web page. Here are the first
several lines:
HTTP Status 500 - Internal Server Error
Type Exception Report
Message Unable to compile class for JSP:
Description The server encountered an unexpected condition that prevented it
from fulfilling the request.
Exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: [17] in the jsp file: [/include/homePageImage.inc]
Syntax error, 'for each' statements are only available if source level is 1.5
or greater
OK. We need to see CATALINA_BASE/conf/web.xml
It will be big but better we see the whole thing to be sure.
Here you go. I've omitted all the comments and the 1,012 <mime-mapping>s. Note
that compilerSourceVM is explicitly set to 11. I didn't do that. It was in the
installed web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
version="6.0">
<request-character-encoding>UTF-8</request-character-encoding>
<response-character-encoding>UTF-8</response-character-encoding>
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>compilerSourceVM</param-name>
<param-value>11</param-value>
</init-param>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<mime-mapping>
[snip]
</mime-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<security-constraint>
<web-resource-collection>
<web-resource-name>Include files</web-resource-name>
<description>No direct access to include files.</description>
<url-pattern>/include/*</url-pattern>
<http-method>POST</http-method>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint>
<description>No direct browser access to include files.</description>
<role-name>NobodyHasThisRole</role-name>
</auth-constraint>
</security-constraint>
</web-app>
Also, the a web application with that error, we need to see WEB-INF/web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
xsi:schemalocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"
metadata-complete="true">
<env-entry>
<env-entry-name>connurl</env-entry-name>
<env-entry-value>jdbc:mysql://localhost/members?</env-entry-value>
<env-entry-type>java.lang.string</env-entry-type>
</env-entry>
<env-entry>
<env-entry-name>dbpassword</env-entry-name>
<env-entry-value>obfuscated</env-entry-value>
<env-entry-type>java.lang.string</env-entry-type>
</env-entry>
<env-entry>
<env-entry-name>webuser</env-entry-name>
<env-entry-value>user</env-entry-value>
<env-entry-type>java.lang.string</env-entry-type>
</env-entry>
</web-app>
<snip/>
i don't know that i have "junk" in the conf files. i don't tend to be inventive
with these things myself. here's my whole server.xml file, sans comments. please
let me know if you see anything wrong.
<snip/>
<host name="www.horeb-wright3.org" appbase="webapps"
unpackwars="true" autodeploy="true"
xmlvalidation="false" xmlnamespaceaware="false">
set autodeploy="false". i think you will be getting double deployment.
Done, although it doesn't seem to have cut down on the number of log messages
generated in catalina.out.
Remove the 2 xml settings. a) the belong on the Context, not the Host
and b) you are using the defaults so there is no need to include them at
all.
Done.
<Alias>horeb-wright3.org</Alias>
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs/"
prefix="horeb_access_log" suffix=".log" timestamp="true"/>
Remove the entire Logger element. It is unsupported and isn't doing
anything.
Done.
None of the above have altered the source level is 1.5 error.
The unchanged number of log entries, coupled with the fact that modifying
compilerSourceVM has no apparent effect, makes me wonder if this Tomcat
instance is actually using the configuration files you think it is. It wouldn’t
be the first time that kind of non-obvious mistake has occurred.
- Chuck
So, how would I verify Tomcat is using the correct conf files?
If you’re using a Tomcat downloaded from tomcat.apache.org, the startup
directories are displayed by default by the startup.sh script. Also, the
catalina.out and catalina.yyyy-mm-dd.log files show more extensive information,
including whatever is being used for CATALINA_BASE and CATALINA_HOME. For
example:
12-Dec-2025 18:12:09.237 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Server version name:
Apache Tomcat/10.1.50
12-Dec-2025 18:12:09.239 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Server built:
Dec 2 2025 22:57:41 UTC
12-Dec-2025 18:12:09.239 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Server version number:
10.1.50.0
12-Dec-2025 18:12:09.239 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log OS Name:
Mac OS X
12-Dec-2025 18:12:09.239 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log OS Version:
26.2
12-Dec-2025 18:12:09.239 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Architecture:
aarch64
12-Dec-2025 18:12:09.239 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Java Home:
/Library/Java/JavaVirtualMachines/temurin-24.jdk/Contents/Home
12-Dec-2025 18:12:09.239 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log JVM Version:
24.0.2+12
12-Dec-2025 18:12:09.239 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:
Eclipse Adoptium
12-Dec-2025 18:12:09.239 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:
/Users/chuck/Downloads/apache-tomcat-10.1.50
12-Dec-2025 18:12:09.239 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:
/Users/chuck/Downloads/apache-tomcat-10.1.50
(The above is from a completely stock fresh download of Tomcat 10.1.) If you’re
using a 3rd-party repackaged version of Tomcat, things may well be a bit
different...
Yes I am using a Tomcat downloaded from tomcat.apache.org.
Here are my VersionLoggerListener entries:
12-Dec-2025 12:31:07.013 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Server version name:
Apache Tomcat/10.1.13
12-Dec-2025 12:31:07.013 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Server built:
Aug 23 2023 21:34:59 UTC
12-Dec-2025 12:31:07.013 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Server version number:
10.1.13.0
12-Dec-2025 12:31:07.013 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log OS Name:
Linux
12-Dec-2025 12:31:07.013 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log OS Version:
5.15.193
12-Dec-2025 12:31:07.013 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Architecture:
amd64
12-Dec-2025 12:31:07.013 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Java Home:
/user/util/src/jdk-17.0.8
12-Dec-2025 12:31:07.013 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log JVM Version:
17.0.8+9-LTS-211
12-Dec-2025 12:31:07.014 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:
Oracle Corporation
12-Dec-2025 12:31:07.014 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:
/user/util/src/apache-tomcat-10.1.13
12-Dec-2025 12:31:07.014 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:
/user/util/src/apache-tomcat-10.1.13
12-Dec-2025 12:31:07.014 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Command line argument:
-Djava.util.logging.config.file=/srv/tomcat/conf/logging.properties
12-Dec-2025 12:31:07.014 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Command line argument:
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
12-Dec-2025 12:31:07.014 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Command line argument:
-Djdk.tls.ephemeralDHKeySize=2048
12-Dec-2025 12:31:07.015 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Command line argument:
-Djava.protocol.handler.pkgs=org.apache.catalina.webresources
12-Dec-2025 12:31:07.015 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Command line argument:
-Dorg.apache.catalina.security.SecurityListener.UMASK=0007
12-Dec-2025 12:31:07.015 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Command line argument:
--add-opens=java.base/java.lang=ALL-UNNAMED
12-Dec-2025 12:31:07.015 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Command line argument:
--add-opens=java.base/java.io=ALL-UNNAMED
12-Dec-2025 12:31:07.015 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Command line argument:
--add-opens=java.base/java.util=ALL-UNNAMED
12-Dec-2025 12:31:07.015 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Command line argument:
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
12-Dec-2025 12:31:07.015 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Command line argument:
--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
12-Dec-2025 12:31:07.015 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Command line argument:
-Dcatalina.base=/srv/tomcat
12-Dec-2025 12:31:07.015 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Command line argument:
-Dcatalina.home=/srv/tomcat
12-Dec-2025 12:31:07.015 INFO [main]
org.apache.catalina.startup.VersionLoggerListener.log Command line argument:
-Djava.io.tmpdir=/srv/tomcat/temp
I am keeping separate directory links under /srv/tomcat and when I move the link
back to the 8.5 version everything work. When I move it to the 10.1 version I
get the errors.
Can you elaborate on that a bit more? Precisely what is in /srv/tomcat and what
“links” are you referring to? Also, can you explain exactly how you install and
start your multiple Tomcat instances?
- CHUCK
I posted this in a reply to Olaf, but I'll repost here:
These are completely different directory hierarchies with distinct
files. One is in .../apache-tomcat-10.1.13/ the other is in
../apache-tomcat-8.5.11/
The 10.1.13 configs were not copied/modified from the 8.5.11 configs. They were
installed from scratch from apache-tomcat-10.1.13.tar.gz.
/srv/tomcat is symlinked to the 10.1.13 directory for testing and to the 8.5.11
directory for production. For example:
# ls -l /srv/tomcat
lrwxrwxrwx 1 root root 35 2025-12-12 13:23 /srv/tomcat ->
/user/util/src/apache-tomcat-8.5.11/
The 8.5.11 config files are distinct from the 10.1.13 files:
$ ls -l apache-tomcat-8.5.11/conf
total 428
drwxr-s--- 28 tomcat tomcat 4096 2025-08-27 01:31 Catalina/
-rw-r----- 1 root tomcat 12895 2017-01-10 16:05 catalina.policy
-rw-r----- 1 root tomcat 7202 2017-01-10 16:05 catalina.properties
-rw-r----- 1 root tomcat 1612 2016-06-14 19:37 context.xml
-rw-r----- 1 root tomcat 1338 2017-01-10 16:05 context.xml-orgJMF
-rw-r----- 1 root tomcat 1149 2017-01-10 16:05 jaspic-providers.xml
-rw-r----- 1 root tomcat 2358 2017-01-10 16:05 jaspic-providers.xsd
-rw-r----- 1 root tomcat 3622 2017-01-10 16:05 logging.properties
-rw-r--r-- 1 root tomcat 14658 2025-12-12 12:08 server.xml
-rw-r----- 1 root tomcat 7511 2017-01-10 16:05 server.xml-orgJMF
-rw-r----- 1 root tomcat 2164 2017-01-10 16:05 tomcat-users.xml
-rw-r----- 1 root tomcat 2633 2017-01-10 16:05 tomcat-users.xsd
-rw-r----- 1 root tomcat 167259 2021-10-28 09:47 web.xml
$ ls -l apache-tomcat-10.1.13/conf
total 612
drwxrws--- 24 tomcat tomcat 4096 2025-12-08 03:26 Catalina/
-rw-r----- 1 root tomcat 12926 2023-08-23 17:34 catalina.policy
-rw-r----- 1 root tomcat 7693 2023-08-23 17:34 catalina.properties
-rw-r----- 1 root tomcat 1447 2025-12-08 03:11 context.xml
-rw-r----- 1 root tomcat 1149 2023-08-23 17:34 jaspic-providers.xml
-rw-r----- 1 root tomcat 2313 2023-08-23 17:34 jaspic-providers.xsd
-rw-r----- 1 root tomcat 4144 2023-08-23 17:34 logging.properties
-rw-r--r-- 1 root tomcat 15199 2025-12-12 12:23 server.xml
-rw-r----- 1 root tomcat 2756 2023-08-23 17:34 tomcat-users.xml
-rw-r----- 1 root tomcat 2558 2023-08-23 17:34 tomcat-users.xsd
-rw-r----- 1 root tomcat 2666 2025-12-12 12:46 web.txt
-rw-r----- 1 root tomcat 173384 2025-12-12 13:24 web.xml
Why is server.xml so big in both cases?
Mine are about half that size, or less.
To help avoid confusion I've completely removed the 8.5.11 everything. No
possibility that the 8.5.11 configs, webapps, etc. are somehow being referenced.
I still get the same error on the webpage.
It is now 23:39 EST on Friday Dec. 12. I don't know your hours or time, but
I'll leave it this way for about the next hour if you happen to be able to try
it. the URL is
http://horeb-wright3.org
I can't leave it that way indefinitely since this is a production system.
Try this on a test system (like your own computer, not in production):
1. Install Tomcat 10.1.13 (or, better yet, 10.1.50) by expanding the tarball
2. Drop your horeb-wright3.war file into the webapps-javaee directory
(you will probably have to create the directory first)
3. Launch Tomcat like this:
apache-tomcat-10.1.50 $ ./bin/catalina.sh run
All of the log messages should be printed on standard output. Open your
browser to http://localhost:8080/horeb-wright3/
Does that work?
-chris
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]