Hi Oleg

Thanks for looking into this.. I have am traveling this week and have been quite busy and haven't yet found the time to look into details. However your analysis is going to be very helpful to me. I also will take a look at the response already committed error I spoke of on HttpCore by this weekend..

thanks
asankha

Oleg Kalnichevski wrote:
On Tue, 2007-10-16 at 19:36 +0100, Paul Fremantle wrote:
Using the QA build that was posted a couple of days ago, I deployed
sample 100 and typed
http://localhost:8080/soap/StockQuoteProxy/getQuote?symbol=IBM into my
browser.

Asankha, Paul

This is what I think is the cause of the problem:

The ServerWorker class uses the following code to process HTTP GET
requests

==================
try {
  serverHandler.commitResponse(conn, response);
  HTTPTransportUtils.processHTTPGetRequest(
    msgContext, os,
    (request.getFirstHeader(SOAPACTION) != null ?
    request.getFirstHeader(SOAPACTION).getValue() : null),
    request.getRequestLine().getUri(),
    cfgCtx,
    parameters);
} catch (AxisFault axisFault) {
  handleException("Error processing GET request for: " +
  request.getRequestLine().getUri(), axisFault);
}
==================

(1) ServerWorker submits 200 response head prior to calling
HTTPTransportUtils.processHTTPGetRequest
(2) AxisFault gets thrown somewhere inside #processHTTPGetRequest (3) The #handleException method is called to handle the fault
(4) At some point AxisEngine#sendFault(faultContext) gets invoked
(5) AxisEngine attempts to submit an 500 response head
(6) Things get nasty
I do not know Axis2 well enough to be able to fix the problem myself
easily, but I could dig in deeper into the Axis2 code if need be.
Apparently the bit of code above needs some work.

The NIO HTTP transport in Axis2 proper is very likely to be affected as
well.
Cheers

Oleg


2007-10-16 19:33:59,609 [10.0.0.3-pzfdell] [HttpClientWorker-1] ERROR
ServerHand
ler Unexpected HTTP protocol error : Transfer-encoding header already
present
org.apache.http.ProtocolException : Transfer-encoding header already
present
        at
org.apache.http.protocol.ResponseContent.process(ResponseContent.java
:67)
        at
org.apache.http.protocol.BasicHttpProcessor.process(BasicHttpProcesso
r.java:304)
        at
org.apache.synapse.transport.nhttp.ServerHandler.commitResponse(Serve
rHandler.java:220)
        at
org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncRespons
e(HttpCoreNIOSender.java :350)
        at
org.apache.synapse.transport.nhttp.HttpCoreNIOSender.invoke(HttpCoreN
IOSender.java:215)
        at
org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396)
        at org.apache.synapse.core.axis2.Axis2Sender.sendBack
(Axis2Sender.java:1
04)


On 10/16/07, Asankha C. Perera <[EMAIL PROTECTED]> wrote:
        Paul
Can you re-create this with the sample #100 etc? Please send
        me details to reproduce.. AFAIK we do not have a test case for
        GET access... I will try this out and see what may be wrong..
        I believe you are not doing a load test
asankha Paul Fremantle wrote: > I'm trying to use GET on a proxy service hosted in Synapse. > I'm getting this error: > > 2007-10-16 15:53:12,421 [10.0.0.3-pzfdell] [I/O dispatcher
        > 7]  INFO PipeImpl Usi
        > ng simulated buffered Pipes for event-driven to stream IO
> bridging > 2007-10-16 15:53:12,906 [10.0.0.3-pzfdell]
        > [HttpServerWorker-1] ERROR ServerHand
        > ler Unexpected HTTP protocol error : Transfer-encoding
        > header already present
        > org.apache.http.ProtocolException: Transfer-encoding header
> already present > at
        > org.apache.http.protocol.ResponseContent.process(ResponseContent.java
        > :67)
        >         at
        > org.apache.http.protocol.BasicHttpProcessor.process(BasicHttpProcesso
        > r.java:304)
        >         at
        > org.apache.synapse.transport.nhttp.ServerHandler.commitResponse (Serve
        > rHandler.java:220)
        >         at
        > org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncRespons
        > e(HttpCoreNIOSender.java:352)
        >         at
> org.apache.synapse.transport.nhttp.HttpCoreNIOSender.invoke(HttpCoreN > IOSender.java:215)
        >         at
        > org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396)
        >         at
        > org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:1
        > 04)
        >         at
        > org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send
        > (Axis2Synap
        > seEnvironment.java:170)
> > I managed to get past this one by commenting out: > if
        > (httpVersion.greaterEquals(HttpVersion.HTTP_1_1)) {
        >                 //entity.setChunked(true);
> } > line 127 ServerHandler.java > > then I get this one: > > 2007-10-16 16:01:45,125 [10.0.0.3-pzfdell]
        > [HttpServerWorker-1] ERROR ServerHandler Unexpected HTTP
        > protocol error : Response already submitted
        > org.apache.http.HttpException : Response already submitted
        >         at
        > 
org.apache.http.impl.nio.DefaultNHttpServerConnection.submitResponse(DefaultNHttpServerCo
        > nnection.java:201)
        >         at
        > 
org.apache.synapse.transport.nhttp.LoggingNHttpServerConnection.submitResponse 
(LoggingNHt
        > tpServerConnection.java:54)
        >         at
        > 
org.apache.synapse.transport.nhttp.ServerHandler.commitResponse(ServerHandler.java:221)
        >         at
        > 
org.apache.synapse.transport.nhttp.HttpCoreNIOSender.sendAsyncResponse 
(HttpCoreNIOSender.
        > java:352)
        >         at
        > 
org.apache.synapse.transport.nhttp.HttpCoreNIOSender.invoke(HttpCoreNIOSender.java:215)
        >         at
        > org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396)
        >         at
        > 
org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Sender.java:104)
> > Help!!?? > > Paul > > -- > Paul Fremantle
        > Co-Founder and VP of Technical Sales, WSO2
        > OASIS WS-RX TC Co-chair
> > blog: http://pzf.fremantle.org
        > [EMAIL PROTECTED]
> > "Oxygenating the Web Service Platform", www.wso2.com



--
Paul Fremantle
Co-Founder and VP of Technical Sales, WSO2
OASIS WS-RX TC Co-chair

blog: http://pzf.fremantle.org
[EMAIL PROTECTED]

"Oxygenating the Web Service Platform", www.wso2.com


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to