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]