[jboss-dev-forums] [Design of JBoss ESB] - Consistent handling of HTTP response header across HTTP comp

tfennelly do-not-reply at jboss.com
Thu Jun 25 05:57:08 EDT 2009


This user forum thread raised an issue wrt to an inconsistency between how the HttpRouter is passing back Http response codes and how the JBossRemoting Gateway is extracting/expecting them from the message as it populates the JBoss Remoting response object.

The HttpRouter constructs a HttpResponse object.  Into this, it populates the headers as HttpHeader instances, as well as setting the response payload.  It then sets all this in a fixed (non-default) body location.

The SOAPClient doesn't map response headers at all, but it does use the MessagePayloadProxy for setting the response payload back on the ESB Message.

The JBR Gateway expects the http headers to be set as ResponseHeader instances in the message properties (org.jboss.soa.esb.message.ResponseHeader).  It extracts the response payload from the message using a MessagePayloadProxy (so it expects it to be set in the Message Body).

The Embedded Tomcat Http Gateway works differently again.  It expects the response headers to be set in a Map under a predefined (fixed) key in the message properties.  It does however use the MessagePayloadProxy to get the response payload from the ESB Message.

So my preference would be:

1.  All http invokers (HttpRouter, SOAPClient, ??) set the response headers in the message properties as ResponseHeader instances) and use the MessagePayloadProxy to set the response payload.  The HttpRouter and SOAPClient both use the HttpClientFactory, so they should be able to use a common codebase for this.

2.  All http gateways to expect the http response headers to be presented as outlined in #1 above.[/url]

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4239944#4239944

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4239944



More information about the jboss-dev-forums mailing list