Hi Roland, Thank you very much for your suggestion. I really have not yet read through the RFC2616. I knows about HTTP from books talking about J2EE. I have started reading RFC2616.
I have inspected the log messages, and find that no footers are involved. And another finding is that the target service is actually executed! But the router servlet cannot successfully send the response to the end client. The other query is why the router servlet works fine for some web services. I hope I can find the answer soon. Regards, Xinjun On 8/11/06, Roland Weber <[EMAIL PROTECTED]> wrote:
Hello Xinjun, I suggest you take a long, good, in-depth look at RFC 2616: http://www.ietf.org/rfc/rfc2616.txt There are PDF versions on the web if you prefer that. In particular, you should study *everything* the RFC says about proxies, because that's what your "router" is. And there is a whole lot about proxies, including information on which header fields must be passed through by a proxy and which ones are strictly link-to-link and MUST NOT be passed on to the next server. Once you've done that, fix the following part of your code: > Enumeration headerNames = request.getHeaderNames(); > while (headerNames.hasMoreElements()) { > String name = (String) headerNames.nextElement(); > Enumeration values = request.getHeaders(name); > while(values.hasMoreElements()) { > String value = (String) values.nextElement(); > log.debug(name + ":" + value + "\n"); > method.addRequestHeader(name, value); > } >} and also this: > Header[] headers = method.getResponseHeaders(); > int headerSize = headers.length; > for (int i = 0; i < headerSize; i++) { > log.debug(headers[i].getName() + ":-" + headers[i].getValue()); > response.addHeader(headers[i].getName(), headers[i].getValue()); > } The following part is questionable, since one of the headers usually specifies which footers are to expect, and turning footers into header could make the request invalid: > Header[] footers = method.getResponseFooters(); > int footerSize = footers.length; > for (int i = 0; i < footerSize; i++) { > log.debug(footers[i].getName() + ":-" + footers[i].getValue()); > response.setHeader(footers[i].getName(), footers[i].getValue()); > } On the other hand, it shouldn't matter. You're trying to access the footers before receiving the message body, so they aren't yet available anyway. cheers, Roland --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
