Lentes, Bernd wrote:
Charles Caldarale wrote:

when talking with a web browser directly to tomcat (port 8080), the
web page is shown correctly.
Are you sure the original request on port 80 is actually
making it through httpd all the way to Tomcat?  The symptoms
you're reporting are characteristic of a misconfigured httpd
not forwarding anything to Tomcat.  Post your mod_jk config
for someone (probably not me) to look at.


Currently i'm logging the whole AJP-stuff between httpd and tomcat (that's a 
lot). This shows that httpd forwards the request to tomcat, and tomcat delivers 
the response.


Your configuration of mod_jk below looks correct (except a small detail, see 
JkMount).
But I must say that it is difficult to believe that the request is actually forwarded to Tomcat, and that Tomcat then fails to recognise the file as a JSP page, and returns it as "text/plain" source. Particularly if, as you said earlier, when you access the same URL on Tomcat directly, via port 8080, the same document displays correctly.

The <Connector>'s in Tomcat (the one for HTTP port 8080, and the one for AJP on port 8009) are just interfaces that receive a request in some format, translate it to a common internal format, and then forward it in that internal format to the internal Tomcat machinery (which is the same in both cases). So whether a request is originally received on the HTTP Connector or on the AJP Connector, should not make a difference in terms of how Tomcat processes the same URL. And the result should be returned the same way in both cases.

So something in the symptoms you report does not fit.

Can you :
- stop Apache
- clear the mod_jk log
- restart Apache
- then issue just one request to "mouseidgenes" through Apache (port 80)
- then edit the mod_jk log, find the lines specific to that one request,
and paste them here

To explain :
when a module like mod_jk is installed in Apache, then Apache will forward *every* request to mod_jk. It is mod_jk which then examines the URL, and decides if it wants to handle this request or not. If not, it returns a code to Apache saying "I decline the request", and then Apache looks for another response handler to handle this.(*) If mod_jk decides to handle the request (because it matches one of the URLs that it has been asked to handle, via the JkMount directives), /then/ it forwards it to Tomcat, waits for the Tomcat response, and returns this response to Apache (which returns it to the browser).

(*) Apache does the same for any other "handlers" that have been installed. Each of them is called in turn with the same URL. The first one who decides to handle the request wins. If no handlers decide to process this request (and all return "declined"), then eventually Apache will process the request with its own default handler. That one finds the requested file on disk somwhere under the Apache DocumentRoot, and returns it to the browser with a Content-type that is what the default Apache handler thinks it is.
(in this case, plain text).

So what I suspect, is that when you look at the mod_jk log, you see lines that show that indeed mod_jk received the request URL from Apache, and is trying to match it to one of its internally mapped URLs. But you may be missing the line that says, in the end, that mod_jk could not match the URL, and is returning a response "declined" to Apache.


My mod_jk.conf:

    # Load mod_jk module
    # LoadModule    jk_module  libexec/mod_jk.so

    # Declare the module for <IfModule directive> (remove this line on Apache 
2.0.x)
    # AddModule     mod_jk.c

    # Where to find workers.properties
    # JkWorkersFile /etc/httpd/conf/workers.properties

    # Where to put jk shared memory
    JkShmFile     /var/log/apache2/mod_jk.shm

    # Where to put jk logs
    JkLogFile     /var/log/apache2/mod_jk.log

    # Set the jk log level [debug/error/info]
    JkLogLevel    debug

    # Select the timestamp log format
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

    JkRequestLogFormat     "%r %s %w %V"

    JKWorkerProperty worker.appl01.type=ajp13
    JKWorkerProperty worker.appl01.host=localhost
    JKWorkerProperty worker.appl01.port=8009
    JKWorkerProperty worker.list=appl01

    # Send servlet for context /mouseidgenes to worker named appl01
    JkMount  /mouseidgenes/* appl01

This will forward a request like "/mouseidgenes/index.jsp", but will not
forward the URL "/mouseidgenes". You may want to add
     JkMount  /mouseidgenes appl01



    # Send JSPs  for context /examples to worker named worker1
    # JkMount  /examples/*.jsp worker1


Bernd

Helmholtz Zentrum München
Deutsches Forschungszentrum für Gesundheit und Umwelt (GmbH)
Ingolstädter Landstr. 1
85764 Neuherberg
www.helmholtz-muenchen.de
Aufsichtsratsvorsitzende: MinDir´in Bärbel Brumme-Bothe
Geschäftsführer: Prof. Dr. Günther Wess und Dr. Nikolaus Blum
Registergericht: Amtsgericht München HRB 6466
USt-IdNr: DE 129521671


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

Reply via email to