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