Hi Bertram
When I invoke a request on that service, it forwards that request
(unmodified), but the receiving server runs into an error
What exactly is the error? and whats the receiving system - is it .Net ?
Can it understand HTTP 1.1 (chunked encoding) or is it HTTP 1.0 only ?

On the receiving system, the request hits an Apache (don't know which version of it), which forwards it to a tomcat 4 installation using the ajp connector. So it supports http 1.1/chunked encoding. Maybe it's interesting to know that the service consumer application only speaks http 1.0.
Hmm.. but I guess that a problem between Apache -> Tomcat, and not related to the Synapse -> Apache interaction, but yes.. it is interesting..
Wireshark gave me a hint on this:

POST http://ws001/soap/v1/WS_Customer_Control HTTP/1.1
Host: localhost:8280
I spot an error here.. the "Host: localhost:8280" is wrong.. is the host
"ws001" the same machine?.. anyway the port 8280 is wrong, ..
No, it's not. The service consumer and the synapse installation are both running on my local workspace machine. The service provider runs on ws001. So the host header seems to be exactly what synapse receives from the service consumer.
No, unfortunately this is an error.. and we should not be propagating the "Host" header.. but according to the HTTP spec, if a full URL is given in the POST request, the receiving party should use that, and ignore the "Host" header - so the severity is less
The error message seems to originate from the tomcat 4, on which the
service is installed. It seems to have troubles figuring out the webapp that should handle the request
The solution is to run tcpdump (or wireshark) or tcpmon or whatever tool between Apache -> Tomcat, and see whats different for a request through Synapse and something else..

asankha

Reply via email to