Oleg

Do you think the problem will still happen on the non-fault case.

Paul

On 10/17/07, Oleg Kalnichevski <[EMAIL PROTECTED]> 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]
>
>


-- 
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

Reply via email to