You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Ilya Kuleshov <ik...@naumen.ru> on 2006/02/14 13:39:44 UTC

Re[2]: http component - parsing error

Hi, Guillaume.

GN> Could you please post the soap request and I will fix that asap.
GN> Thanks,

Please see the addressing-request.xml attached to the message.

>>
>>I've just encountered the unexpected behaviour of http component. It
>>works well without WS-Addressing headers, but there are some issues
>>when headers are present in the message.
>>
>>I use Axis to connect to my services exposed via http component and it
>>outputs the whole SOAP message as a single string. And then I get the
>>following error in response:
>>
>>javax.xml.stream.XMLStreamException: ParseError at [row,col]:[2,0]
>>Message: expected start or end tag
>>        at
>> org.apache.servicemix.jbi.jaxp.ExtendedXMLStreamReader.nextTag(ExtendedXMLStreamReader.java:53)
>>        at
>> org.apache.servicemix.soap.marshalers.SoapReader.parseHeaders(SoapReader.java:121)
>>        at
>> org.apache.servicemix.soap.marshalers.SoapReader.readSoap(SoapReader.java:100)
>>        at
>> org.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:66)
>>        at
>> org.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:60)
>>        at
>> org.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:107)
>>        at
>> org.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:70)
>>        at
>> javax.servlet.http.HttpServlet.service(HttpServlet.java:615)
>>        at
>> javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>>        at
>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:408)
>>        at
>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:349)
>>        at
>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:536)
>>        at org.mortbay.jetty.Server.handle(Server.java:247)
>>        at org.mortbay.jetty.Server.handle(Server.java:221)
>>        at
>> org.mortbay.jetty.HttpConnection.doHandler(HttpConnection.java:362)
>>        at
>> org.mortbay.jetty.HttpConnection.access$1600(HttpConnection.java:45)
>>        at
>> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:609)
>>        at
>> org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:613)
>>        at
>> org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:195)
>>        at
>> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:297)
>>        at
>> org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:144)
>>        at
>> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:412)
>>DEBUG - JCLLoggerAdapter.debug(121) | RESPONSE /Service/  500
>>DEBUG - JCLLoggerAdapter.debug(121) | EOF
>>
>>When I manually reformat the same message and split it into multiple
>>strings, then everything is ok. The problem is that I can't tell Axis
>>to split messages in similar way. :)

Re: http component - parsing error

Posted by Guillaume Nodet <gu...@worldonline.fr>.
Ilya Kuleshov wrote:

>Hi, Guillaume!
>
>As  to  my  question about overlapping paths. I found that it does not
>matter  what  endpointUrl  you  choose  when sending the soap message,
>because  http-component  inspects  the  wsa:To  header  and routes the
>message  to  the right endpoint. This seems strange to me but there is
>nothing bad about it so I'm satisfied entirely. :)
>  
>
Exactly :)

Guillaume Nodet


Re[3]: http component - parsing error

Posted by Ilya Kuleshov <ik...@naumen.ru>.
Hi, Guillaume!

As  to  my  question about overlapping paths. I found that it does not
matter  what  endpointUrl  you  choose  when sending the soap message,
because  http-component  inspects  the  wsa:To  header  and routes the
message  to  the right endpoint. This seems strange to me but there is
nothing bad about it so I'm satisfied entirely. :)

GN>> I have just add a fix.
GN>> Now, when trying to start multiple endpoints with overlapping pathes (as
GN>> you were trying to do)
GN>> a more explicit exception is thrown.

IK> And what's wrong in overlapping pathes? I anticipated to be able to have
IK> several services bound to a single path. That's why we need wsa:To
IK> routing  here.  If  I  make a distinct path for each service then each
IK> time  I'd like to query a particular service I should send my messages
IK> to a different url? At least it worked for me until recent update, so
IK> I thought this is a normal behaviour for http-component.

GN>> Btw, not sure what you are trying to do.
GN>> The wsa:ReplyTo is not implemented yet. What would you expect it to do ?

IK> nothing, I just copied it from the http-component's tests before
IK> sending you a report in order to be sure that I don't miss some
IK> intricate magic. For now I just need the wsa:To routing.




Re[2]: http component - parsing error

Posted by Ilya Kuleshov <ik...@naumen.ru>.
Hi, Guillaume!

GN> I have just add a fix.
GN> Now, when trying to start multiple endpoints with overlapping pathes (as
GN> you were trying to do)
GN> a more explicit exception is thrown.

And what's wrong in overlapping pathes? I anticipated to be able to have
several services bound to a single path. That's why we need wsa:To
routing  here.  If  I  make a distinct path for each service then each
time  I'd like to query a particular service I should send my messages
to a different url? At least it worked for me until recent update, so
I thought this is a normal behaviour for http-component.

GN> Btw, not sure what you are trying to do.
GN> The wsa:ReplyTo is not implemented yet. What would you expect it to do ?

nothing, I just copied it from the http-component's tests before
sending you a report in order to be sure that I don't miss some
intricate magic. For now I just need the wsa:To routing.


Re: http component - parsing error

Posted by Guillaume Nodet <gu...@worldonline.fr>.
I have just add a fix.
Now, when trying to start multiple endpoints with overlapping pathes (as 
you were trying to do)
a more explicit exception is thrown.

Btw, not sure what you are trying to do.
The wsa:ReplyTo is not implemented yet. What would you expect it to do ?
IMHO, there is a real difference between the wsa:To and wsa:ReplyTo.
The wsa:To will target a jbi endpoint, whereas the wsa:ReplyTo will send 
the response
to another http uri (not another jbi endpoint).  Is that what you had in 
mind ?
It should not be difficult or very long to add that, if you need.

Cheers,
Guillaume Nodet

Ilya Kuleshov wrote:

>Hi, Guillaume!
>
>GN> Thanks, this is now fixed in svn head.
>
>Thank you, Guillaume. Although this error has been fixed, I've faced a
>new issue with http component. :) In case there are more then one
>endpoint specified, I get an empty response and the following
>warning is being displayed on the console:
>
>DEBUG - JCLLoggerAdapter.debug(121) | REQUEST /Service/ on org.mortbay.jetty.HttpConnection@1b158db
>WARN - JCLLoggerAdapter.warn(346) | handle failed
>java.lang.ClassCastException: java.util.ArrayList
>        at org.mortbay.jetty.Server.handle(Server.java:309)
>        at org.mortbay.jetty.Server.handle(Server.java:281)
>        at org.mortbay.jetty.HttpConnection.doHandler(HttpConnection.java:363)
>        at org.mortbay.jetty.HttpConnection.access$1600(HttpConnection.java:45)
>        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:625)
>        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:613)
>        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:195)
>        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:297)
>        at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:146)
>        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:412)
>
>
>This error appeared only after the recent update, I was able to handle
>multiple endpoints before.
>
>My servicemix.xml and request message are enclosed into this letter.
>
>Also I experience some unusual component installation problems, hope
>I'll be able to provide more information later.
>
>GN> Cheers,
>GN> Guillaume Nodet
>
>GN> Ilya Kuleshov wrote:
>
>  
>
>>>Hi, Guillaume.
>>>
>>>GN> Could you please post the soap request and I will fix that asap.
>>>GN> Thanks,
>>>
>>>Please see the addressing-request.xml attached to the message.
>>>
>>> 
>>>
>>>      
>>>
>>>>>I've just encountered the unexpected behaviour of http component. It
>>>>>works well without WS-Addressing headers, but there are some issues
>>>>>when headers are present in the message.
>>>>>
>>>>>I use Axis to connect to my services exposed via http component and it
>>>>>outputs the whole SOAP message as a single string. And then I get the
>>>>>following error in response:
>>>>>
>>>>>javax.xml.stream.XMLStreamException: ParseError at [row,col]:[2,0]
>>>>>Message: expected start or end tag
>>>>>      at
>>>>>org.apache.servicemix.jbi.jaxp.ExtendedXMLStreamReader.nextTag(ExtendedXMLStreamReader.java:53)
>>>>>      at
>>>>>org.apache.servicemix.soap.marshalers.SoapReader.parseHeaders(SoapReader.java:121)
>>>>>      at
>>>>>org.apache.servicemix.soap.marshalers.SoapReader.readSoap(SoapReader.java:100)
>>>>>      at
>>>>>org.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:66)
>>>>>      at
>>>>>org.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:60)
>>>>>      at
>>>>>org.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:107)
>>>>>      at
>>>>>org.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:70)
>>>>>      at
>>>>>javax.servlet.http.HttpServlet.service(HttpServlet.java:615)
>>>>>      at
>>>>>javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>>>>>      at
>>>>>org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:408)
>>>>>      at
>>>>>org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:349)
>>>>>      at
>>>>>org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:536)
>>>>>      at org.mortbay.jetty.Server.handle(Server.java:247)
>>>>>      at org.mortbay.jetty.Server.handle(Server.java:221)
>>>>>      at
>>>>>org.mortbay.jetty.HttpConnection.doHandler(HttpConnection.java:362)
>>>>>      at
>>>>>org.mortbay.jetty.HttpConnection.access$1600(HttpConnection.java:45)
>>>>>      at
>>>>>org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:609)
>>>>>      at
>>>>>org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:613)
>>>>>      at
>>>>>org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:195)
>>>>>      at
>>>>>org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:297)
>>>>>      at
>>>>>org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:144)
>>>>>      at
>>>>>org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:412)
>>>>>DEBUG - JCLLoggerAdapter.debug(121) | RESPONSE /Service/  500
>>>>>DEBUG - JCLLoggerAdapter.debug(121) | EOF
>>>>>
>>>>>When I manually reformat the same message and split it into multiple
>>>>>strings, then everything is ok. The problem is that I can't tell Axis
>>>>>to split messages in similar way. :)
>>>>>     
>>>>>
>>>>>          
>>>>>
>
>  
>

Re[2]: http component - parsing error

Posted by Ilya Kuleshov <ik...@naumen.ru>.
Hi, Guillaume!

GN> Thanks, this is now fixed in svn head.

Thank you, Guillaume. Although this error has been fixed, I've faced a
new issue with http component. :) In case there are more then one
endpoint specified, I get an empty response and the following
warning is being displayed on the console:

DEBUG - JCLLoggerAdapter.debug(121) | REQUEST /Service/ on org.mortbay.jetty.HttpConnection@1b158db
WARN - JCLLoggerAdapter.warn(346) | handle failed
java.lang.ClassCastException: java.util.ArrayList
        at org.mortbay.jetty.Server.handle(Server.java:309)
        at org.mortbay.jetty.Server.handle(Server.java:281)
        at org.mortbay.jetty.HttpConnection.doHandler(HttpConnection.java:363)
        at org.mortbay.jetty.HttpConnection.access$1600(HttpConnection.java:45)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:625)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:613)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:195)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:297)
        at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:146)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:412)


This error appeared only after the recent update, I was able to handle
multiple endpoints before.

My servicemix.xml and request message are enclosed into this letter.

Also I experience some unusual component installation problems, hope
I'll be able to provide more information later.

GN> Cheers,
GN> Guillaume Nodet

GN> Ilya Kuleshov wrote:

>>Hi, Guillaume.
>>
>>GN> Could you please post the soap request and I will fix that asap.
>>GN> Thanks,
>>
>>Please see the addressing-request.xml attached to the message.
>>
>>  
>>
>>>>I've just encountered the unexpected behaviour of http component. It
>>>>works well without WS-Addressing headers, but there are some issues
>>>>when headers are present in the message.
>>>>
>>>>I use Axis to connect to my services exposed via http component and it
>>>>outputs the whole SOAP message as a single string. And then I get the
>>>>following error in response:
>>>>
>>>>javax.xml.stream.XMLStreamException: ParseError at [row,col]:[2,0]
>>>>Message: expected start or end tag
>>>>       at
>>>>org.apache.servicemix.jbi.jaxp.ExtendedXMLStreamReader.nextTag(ExtendedXMLStreamReader.java:53)
>>>>       at
>>>>org.apache.servicemix.soap.marshalers.SoapReader.parseHeaders(SoapReader.java:121)
>>>>       at
>>>>org.apache.servicemix.soap.marshalers.SoapReader.readSoap(SoapReader.java:100)
>>>>       at
>>>>org.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:66)
>>>>       at
>>>>org.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:60)
>>>>       at
>>>>org.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:107)
>>>>       at
>>>>org.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:70)
>>>>       at
>>>>javax.servlet.http.HttpServlet.service(HttpServlet.java:615)
>>>>       at
>>>>javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>>>>       at
>>>>org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:408)
>>>>       at
>>>>org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:349)
>>>>       at
>>>>org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:536)
>>>>       at org.mortbay.jetty.Server.handle(Server.java:247)
>>>>       at org.mortbay.jetty.Server.handle(Server.java:221)
>>>>       at
>>>>org.mortbay.jetty.HttpConnection.doHandler(HttpConnection.java:362)
>>>>       at
>>>>org.mortbay.jetty.HttpConnection.access$1600(HttpConnection.java:45)
>>>>       at
>>>>org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:609)
>>>>       at
>>>>org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:613)
>>>>       at
>>>>org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:195)
>>>>       at
>>>>org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:297)
>>>>       at
>>>>org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:144)
>>>>       at
>>>>org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:412)
>>>>DEBUG - JCLLoggerAdapter.debug(121) | RESPONSE /Service/  500
>>>>DEBUG - JCLLoggerAdapter.debug(121) | EOF
>>>>
>>>>When I manually reformat the same message and split it into multiple
>>>>strings, then everything is ok. The problem is that I can't tell Axis
>>>>to split messages in similar way. :)
>>>>      
>>>>


Re: http component - parsing error

Posted by Guillaume Nodet <gu...@worldonline.fr>.
Thanks, this is now fixed in svn head.

Cheers,
Guillaume Nodet

Ilya Kuleshov wrote:

>Hi, Guillaume.
>
>GN> Could you please post the soap request and I will fix that asap.
>GN> Thanks,
>
>Please see the addressing-request.xml attached to the message.
>
>  
>
>>>I've just encountered the unexpected behaviour of http component. It
>>>works well without WS-Addressing headers, but there are some issues
>>>when headers are present in the message.
>>>
>>>I use Axis to connect to my services exposed via http component and it
>>>outputs the whole SOAP message as a single string. And then I get the
>>>following error in response:
>>>
>>>javax.xml.stream.XMLStreamException: ParseError at [row,col]:[2,0]
>>>Message: expected start or end tag
>>>       at
>>>org.apache.servicemix.jbi.jaxp.ExtendedXMLStreamReader.nextTag(ExtendedXMLStreamReader.java:53)
>>>       at
>>>org.apache.servicemix.soap.marshalers.SoapReader.parseHeaders(SoapReader.java:121)
>>>       at
>>>org.apache.servicemix.soap.marshalers.SoapReader.readSoap(SoapReader.java:100)
>>>       at
>>>org.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:66)
>>>       at
>>>org.apache.servicemix.soap.marshalers.SoapReader.read(SoapReader.java:60)
>>>       at
>>>org.apache.servicemix.http.processors.ConsumerProcessor.process(ConsumerProcessor.java:107)
>>>       at
>>>org.apache.servicemix.http.HttpBridgeServlet.doPost(HttpBridgeServlet.java:70)
>>>       at
>>>javax.servlet.http.HttpServlet.service(HttpServlet.java:615)
>>>       at
>>>javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
>>>       at
>>>org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:408)
>>>       at
>>>org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:349)
>>>       at
>>>org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:536)
>>>       at org.mortbay.jetty.Server.handle(Server.java:247)
>>>       at org.mortbay.jetty.Server.handle(Server.java:221)
>>>       at
>>>org.mortbay.jetty.HttpConnection.doHandler(HttpConnection.java:362)
>>>       at
>>>org.mortbay.jetty.HttpConnection.access$1600(HttpConnection.java:45)
>>>       at
>>>org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:609)
>>>       at
>>>org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:613)
>>>       at
>>>org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:195)
>>>       at
>>>org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:297)
>>>       at
>>>org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:144)
>>>       at
>>>org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:412)
>>>DEBUG - JCLLoggerAdapter.debug(121) | RESPONSE /Service/  500
>>>DEBUG - JCLLoggerAdapter.debug(121) | EOF
>>>
>>>When I manually reformat the same message and split it into multiple
>>>strings, then everything is ok. The problem is that I can't tell Axis
>>>to split messages in similar way. :)
>>>      
>>>