You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by ni...@weblineindia.com on 2001/07/18 11:15:58 UTC

Re: unable to process 200 response from Tomcat using isapi_redirect.dll

----- Original Message -----
From: "Bruyn, Bill" <Bi...@avnet.com>
To: <to...@jakarta.apache.org>
Sent: Tuesday, July 17, 2001 10:20 PM
Subject: unable to process 200 response from Tomcat using isapi_redirect.dll


> Hello All,
>
> I am trying to configure Tomcat to handle servlet/JSP requests from an
> instance of IIS hosted on another machine.  In short, it appears to be
> working until it's time to process the AJP12 response body, then the thing
> goes to lunch.
>
> First, the installation details.  I should tell you that the hardware and
OS
> information will change eventually, as this is a practice run for an IIS
> installation.  For now, Personal Web Server sits on an old laptop (which
> obtains its IP address via DHCP) running NT Workstation 4.0 SP5.  The real
> configuration is going to be IIS on NT Server SP6.
>
> The version of Tomcat that I have is actually the Embedded Tomcat 3.2.2,
> distributed with JBoss 2.2.2.  I'm told that full Tomcat configuration is
> supported, and so far that appears to be the case.  For now, JBoss/Tomcat
> runs on a Redhat Linux 7 box with a static IP address and Sun's JDK 1.3.
> HTTP requests made directly to this box on port 8080 yield the expected
> results.  The app server will eventually run on Solaris 8.
>
> The isapi_redirect.dll is loaded at c:\jakarta-tomcat\bin.  I also have a
> conf directory (containing workers.properties and uriworkermap.properties)
> and a logs directory (containing the isapi_redirect log file) there.
>
> I made the following registry entries at
HKEY_LOCAL_MACHINE\SOFTWARE\Apache
> Software Foundation\Jakarta Isapi Redirector\1.0
>
> extension_uri = /jakarta/isapi_redirect.dll
>
> log_file =
> c:\jakarta-tomcat\logs\isapi.log
> log_level = debug
> worker_file =
> c:\jakarta-tomcat\conf\workers.properties
> worker_mount_file =
> c:\jakarta-tomcat\conf\uriworkermap.properties
>
> per G Shacor's "Tomcat IIS HowTo" document.  I was then able to create the
> virtual directory, assign it execute permission, and create my ISAPI
filter.
> I did have to modify the configuration files, of course, but they look
okay
> to me.  I'll attach them for your review if you think it's worthwhile.
All
> I did was remove the default workers for clarity's sake, add a new worker
> named csg1 of type AJP12, and map it to my Linux box at port 8007 (where
it
> listens for AJP12 requests).
>
> Anyway, when the PWS service starts, I have the green arrow of victory,
the
> log is created, the worker is verified, and all is well.  I guess I should
> mention that stopping the service is a lot like pulling teeth - It stops,
> but an error is returned stating that it could not be stopped, and
> subsequent attempts to start it also yield errors.  In short, I'm forced
to
> reboot every time I want to stop the ridiculous web server.  I'm looking
for
> another place to run IIS to rule out web server issues, but for now, this
is
> what I'm forced to deal with.
>
> Requests made to both /examples and /servlet contexts are proxied
correctly.
> i.e., the ISAPI filter hands the request off to Tomcat as it should.  I
have
> no problems with the 404 errors so prevalent on the lists.  In fact, the
> only time the thing seems to work as expected is when I ask for a resource
> that doesn't exist.  By that, I mean you can see the filter hand the
request
> to Tomcat, Tomcat return the response, and the 404 error gets returned to
> the client as it should.  My problem comes when I request resources that
> return a 200 code.
>
> I'm including the entire contents of the log, but it looks to me like
Tomcat
> returns the response and the filter reads the header, then dies trying to
> process the body.  Could it be as simple as a bad copy of the DLL?  Either
> that, or Embedded Tomcat is different enough that the DLL can't deal with
> the AJP12 response?  I spent most of the day yesterday troubleshooting,
and
> I don't know what else to think at this point...
>
> I'm a little new to this, so please be kind.  :o]
>
> Bill Bruyn
> Programmer / Analyst
> Application Services, Avnet ISD
>
> Following are the entire contents of the log:
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> [jk_uri_worker_map.c (156)]: Into
jk_uri_worker_map_t::uri_worker_map_alloc
> [jk_uri_worker_map.c (196)]: Into jk_uri_worker_map_t::uri_worker_map_open
> [jk_uri_worker_map.c (211)]: jk_uri_worker_map_t::uri_worker_map_open,
rule
> map size is 2
> [jk_uri_worker_map.c (267)]: Into
jk_uri_worker_map_t::uri_worker_map_open,
> match rule /servlet/=csg1 was added
> [jk_uri_worker_map.c (267)]: Into
jk_uri_worker_map_t::uri_worker_map_open,
> match rule /examples/=csg1 was added
> [jk_uri_worker_map.c (296)]: Into
jk_uri_worker_map_t::uri_worker_map_open,
> there are 2 rules
> [jk_uri_worker_map.c (317)]: jk_uri_worker_map_t::uri_worker_map_open,
done
> [jk_worker.c (82)]: Into wc_open
> [jk_worker.c (207)]: Into build_worker_map, creating 1 workers
> [jk_worker.c (213)]: build_worker_map, creating worker csg1
> [jk_worker.c (138)]: Into wc_create_worker
> [jk_worker.c (152)]: wc_create_worker, about to create instance csg1 of
> ajp12
> [jk_ajp12_worker.c (264)]: Into ajp12_worker_factory
> [jk_worker.c (161)]: wc_create_worker, about to validate and init csg1
> [jk_ajp12_worker.c (182)]: Into jk_worker_t::validate
> [jk_ajp12_worker.c (194)]: In jk_worker_t::validate for worker csg1
contact
> is uasux0001linux:8007
> [jk_worker.c (177)]: wc_create_worker, done
> [jk_worker.c (223)]: build_worker_map, removing old csg1 worker
> [jk_worker.c (235)]: build_worker_map, done
> [jk_worker.c (102)]: wc_open, done
> [jk_isapi_plugin.c (408)]: HttpFilterProc started
> [jk_isapi_plugin.c (429)]: In HttpFilterProc test redirection of
> /examples/jsp/index.html
> [jk_uri_worker_map.c (345)]: Into jk_uri_worker_map_t::map_uri_to_worker
> [jk_uri_worker_map.c (407)]: jk_uri_worker_map_t::map_uri_to_worker, Found
a
> match csg1
> [jk_isapi_plugin.c (439)]: HttpFilterProc [/examples/jsp/index.html] is a
> servlet url - should redirect to csg1
> [jk_isapi_plugin.c (461)]: HttpFilterProc check if
> [/examples/jsp/index.html] is points to the web-inf directory
> [jk_isapi_plugin.c (517)]: HttpExtensionProc started
> [jk_worker.c (123)]: Into wc_get_worker_for_name csg1
> [jk_worker.c (127)]: wc_get_worker_for_name, done  found a worker
> [jk_isapi_plugin.c (539)]: HttpExtensionProc got a worker for name csg1
> [jk_ajp12_worker.c (223)]: Into jk_worker_t::get_endpoint
> [jk_ajp12_worker.c (121)]: Into jk_endpoint_t::service
> [jk_connect.c (108)]: Into jk_open_socket
> [jk_connect.c (115)]: jk_open_socket, try to connect socket = 648
> [jk_connect.c (124)]: jk_open_socket, after connect ret = 0
> [jk_connect.c (132)]: jk_open_socket, set TCP_NODELAY to on
> [jk_connect.c (140)]: jk_open_socket, return, sd = 648
> [jk_ajp12_worker.c (134)]: In jk_endpoint_t::service, sd = 648
> [jk_ajp12_worker.c (357)]: Into ajpv12_handle_request
> [jk_ajp12_worker.c (361)]: ajpv12_handle_request, sending the ajp12 start
> sequence
> [jk_ajp12_worker.c (413)]: ajpv12_handle_request, sending the headers
> [jk_ajp12_worker.c (432)]: ajpv12_handle_request, sending the terminating
> mark
> [jk_ajp12_worker.c (477)]: ajpv12_handle_request done
> [jk_ajp12_worker.c (148)]: In jk_endpoint_t::service, sent request
> [jk_ajp12_worker.c (493)]: Into ajpv12_handle_response
> [jk_ajp12_worker.c (507)]: ajpv12_handle_response, read Status: 200 OK
> [jk_ajp12_worker.c (535)]: ajpv12_handle_response, read Status=200 OK
> [jk_ajp12_worker.c (507)]: ajpv12_handle_response, read Content-Type:
> text/html
> [jk_ajp12_worker.c (535)]: ajpv12_handle_response, read
> Content-Type=text/html
> [jk_ajp12_worker.c (547)]: ajpv12_handle_response, allocating header
arrays
> [jk_ajp12_worker.c (507)]: ajpv12_handle_response, read Content-Length:
7266
> [jk_ajp12_worker.c (535)]: ajpv12_handle_response, read
Content-Length=7266
> [jk_ajp12_worker.c (507)]: ajpv12_handle_response, read Last-Modified:
Thu,
> 12 Jul 2001 18:20:06 GMT
> [jk_ajp12_worker.c (535)]: ajpv12_handle_response, read Last-Modified=Thu,
> 12 Jul 2001 18:20:06 GMT
> [jk_ajp12_worker.c (507)]: ajpv12_handle_response, read Servlet-Engine:
> Tomcat Web Server/3.2.2 (JSP 1.1; Servlet 2.2; Java 1.3.0; Linux 2.2.16-22
> i386; java.vendor=Sun Microsystems Inc.)
> [jk_ajp12_worker.c (535)]: ajpv12_handle_response, read
> Servlet-Engine=Tomcat Web Server/3.2.2 (JSP 1.1; Servlet 2.2; Java 1.3.0;
> Linux 2.2.16-22 i386; java.vendor=Sun Microsystems Inc.)
> [jk_ajp12_worker.c (507)]: ajpv12_handle_response, read
> [jk_ajp12_worker.c (509)]: ajpv12_handle_response, headers are done
> [jk_ajp12_worker.c (568)]: ajpv12_handle_response, starting response
> [jk_isapi_plugin.c (201)]: Into jk_ws_service_t::start_response
> [jk_ajp12_worker.c (579)]: ajpv12_handle_response, reading response body
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>