You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Graham Leggett <mi...@sharp.fm.INVALID> on 2023/07/01 22:49:52 UTC

Tomcat9 silently ignores web application

Hi all,

I have for a while now been moving various web applications onto a new machine running tomcat9, and things have been working great. I have suddenly reached one web application which is silently ignored.

Tomcat starts up without any error, makes no mention of the webapp. If the webapp points to a bogus directory, tomcat complains very loudly, point tomcat to the correct directory, tomcat ignores the webapp.

Any attempt to hit the webapp returns the dreaded tomcat 404 page. Interestingly hitting /foo/bar returns a redirect to /foo/bar/ (as you would expect it to), but /foo/bar/ returns a tomcat 404.

The webapp is not being newly developed, and works fine on tomcat7 on the old machine.

Is there anything that can be done to coax an error message or any message out of tomcat when it fails to deploy something?

Snip of server.xml looks like this:

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <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" />

        <Context path=“/foo/bar" docBase="/usr/share/foo-bar">

        </Context>
      </Host>

Regards,
Graham
—


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat9 silently ignores web application

Posted by Christopher Schultz <ch...@christopherschultz.net>.
Graham,

On 7/7/23 08:48, Graham Leggett wrote:
>> 1. Please read
>> https://tomcat.apache.org/tomcat-9.0-doc/config/context.html#Defining_a_context <https://tomcat.apache.org/tomcat-9.0-doc/config/context.html#Defining_a_context>
>>
>> You are injecting a Context into a Host at the time when the
>> server.xml file is parsed. It does not go through the proper
>> "deployment" processing at start time.
> 
> I understand the different places that tomcat looks for contexts, I don’t understand “It does not go through the proper “deployment” processing at start time”. Can you clarify?
> 
>> 2. What result did you expect?
> 
> What I have is a context that is tightly bound to the tomcat that contains it. The whole tomcat generated is autogenerated, so creating lots of little files and somehow mapping their filenames safely on the filesystem is complexity I would rather avoid. One single server.xml is perfect in this case.
> 
> Where I am getting stuck is that tomcat is being coy with the deployment - I see tomcat complain loudly if you point at an appBase that doesn’t exist, but you change it to an appBase that does exist and tomcat starts fine, says nothing, and every URL returns a 404. Something has gone wrong somewhere, but without being given a clue as to what it is, I’m stuck.

When you start Tomcat, do you get a message about /foo/bar being 
deployed in catalina.out? For example, I get this for every deployment:

Jul 06, 2023 4:09:33 PM org.apache.catalina.startup.HostConfig 
deployDirectory
INFO: Deploying web application directory [/full/path/to/web/application]
Jul 06, 2023 4:09:39 PM org.apache.catalina.startup.HostConfig 
deployDirectory
INFO: Deployment of web application directory 
[/full/path/to/web/application] has finished in [6,007] ms

Are you seeing that, and does it include (a) the expected path to your 
application and (b) no errors indicating that deployment has failed?

-chris

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Tomcat9 silently ignores web application

Posted by Graham Leggett <mi...@sharp.fm.INVALID>.
Hi,

> 1. Please read
> https://tomcat.apache.org/tomcat-9.0-doc/config/context.html#Defining_a_context <https://tomcat.apache.org/tomcat-9.0-doc/config/context.html#Defining_a_context>
> 
> You are injecting a Context into a Host at the time when the
> server.xml file is parsed. It does not go through the proper
> "deployment" processing at start time.

I understand the different places that tomcat looks for contexts, I don’t understand “It does not go through the proper “deployment” processing at start time”. Can you clarify?

> 2. What result did you expect?

What I have is a context that is tightly bound to the tomcat that contains it. The whole tomcat generated is autogenerated, so creating lots of little files and somehow mapping their filenames safely on the filesystem is complexity I would rather avoid. One single server.xml is perfect in this case.

Where I am getting stuck is that tomcat is being coy with the deployment - I see tomcat complain loudly if you point at an appBase that doesn’t exist, but you change it to an appBase that does exist and tomcat starts fine, says nothing, and every URL returns a 404. Something has gone wrong somewhere, but without being given a clue as to what it is, I’m stuck.

Regards,
Graham
—


Re: Tomcat9 silently ignores web application

Posted by Konstantin Kolinko <kn...@gmail.com>.
вс, 2 июл. 2023 г. в 01:50, Graham Leggett <mi...@sharp.fm.invalid>:
>
> Hi all,
>
> I have for a while now been moving various web applications onto a new machine running tomcat9, and things have been working great. I have suddenly reached one web application which is silently ignored.
>
> Tomcat starts up without any error, makes no mention of the webapp. If the webapp points to a bogus directory, tomcat complains very loudly, point tomcat to the correct directory, tomcat ignores the webapp.
>
> Any attempt to hit the webapp returns the dreaded tomcat 404 page. Interestingly hitting /foo/bar returns a redirect to /foo/bar/ (as you would expect it to), but /foo/bar/ returns a tomcat 404.
>
> The webapp is not being newly developed, and works fine on tomcat7 on the old machine.
>
> Is there anything that can be done to coax an error message or any message out of tomcat when it fails to deploy something?
>
> Snip of server.xml looks like this:
>
>       <Host name="localhost"  appBase="webapps"
>             unpackWARs="true" autoDeploy="true">
>
>         <!-- SingleSignOn valve, share authentication between web applications
>              Documentation at: /docs/config/valve.html -->
>         <!--
>         <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
>         -->
>
>         <!-- Access log processes all example.
>              Documentation at: /docs/config/valve.html
>              Note: The pattern used is equivalent to using pattern="common" -->
>         <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" />
>
>         <Context path=“/foo/bar" docBase="/usr/share/foo-bar">
>
>         </Context>

1. Please read
https://tomcat.apache.org/tomcat-9.0-doc/config/context.html#Defining_a_context

You are injecting a Context into a Host at the time when the
server.xml file is parsed. It does not go through the proper
"deployment" processing at start time.

2. What result did you expect?

The default behaviour is to look for a welcome-file, such as
"index.html". Do you have one?

The possible names of welcome files are configured by
"welcome-file-list" setting in the WEB-INF/web of a web application.
(The defaults, shared by all web applications, are configured with the
conf/web.xml file in Tomcat configuration.)

Alternatively, you may reconfigure the DefaultServlet (by copying its
servlet and servlet-mapping configuration from the conf/web.xml file
into your web application) and enable directory listings. Those are
off by default.

https://tomcat.apache.org/tomcat-9.0-doc/default-servlet.html

Best regards,
Konstantin kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org