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.

> If you want an access log, add the access log valve.
>
> Mark

I've removed the <Logger> tag. I think I do have the logging valve configured:

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="false">
       
        <Valve className="org.apache.catalina.valves.AccessLogValve" 
directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>

This is under the <Host name="localhost">, not under the individual <Hosts> 
configured.
Perhaps it needs to be? This is a detail I can ask about later.

[snip]

Thanks --Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to