You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Benamin <be...@bisonline.com> on 2007/05/15 05:48:37 UTC

question about http consumer

I have created a successful example of http consumer that sends message to an
SE, and then returns that message back out to http using the client.html
that was provided with the bridge example. 

I have just one issue.  After I get a status: 200 and my message back, if I
sit and wait maybe a minute, ServiceMix logs an exception.  I am listing it
below.  Is this a problem?  If so, how can I fix it?

ERROR - MyComponent                    - Error processing exchange InOut[
  id: ID:massive-64664-1179200462025-2:0
  status: Done
  role: provider
  service:
{http://servicemix.apache.org/servicemanagerassembly}ServiceManagerEnqueue
  endpoint: endpoint
  in: Unable to display: org.mortbay.jetty.EofException
  out: Unable to display: org.mortbay.jetty.EofException
]
javax.jbi.messaging.MessagingException: Out not supported
        at
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:317)
        at
org.apache.servicemix.samples.serviceManagerAssembly.MyEndpoint.process(MyEndpoint.java:313)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441)
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
        at java.lang.Thread.run(Thread.java:595)
ERROR - MyComponent                    - Error setting exchange status to
ERROR
javax.jbi.messaging.MessagingException: illegal call to send / sendSync
        at
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:571)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:370)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:417)
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:58)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
        at java.lang.Thread.run(Thread.java:595)
-- 
View this message in context: http://www.nabble.com/question-about-http-consumer-tf3756165s12049.html#a10616138
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: question about http consumer

Posted by Guillaume Nodet <gn...@gmail.com>.
An exchange goes from one the consumer to the provider several times in its
life cycle.  For an InOut exchange, the usual steps are
  consumer -> provider (status = active, in message)
  provider -> consumer (status = active, out message)
  consumer -> provider (status = done)

So in your SE, you need to check the status of the exchange before
processing it.
The exception is thrown because you try to set the out message on an
exchange
in a DONE status certainly.

On 5/15/07, Benamin <be...@bisonline.com> wrote:
>
>
> What do you mean by checking the status in my component?  And how would
> this
> cause the exception?
>
> thanks.
>
>
>
> tterm wrote:
> >
> > Is it possible that you don't check the status in your component?
> >
> > Cheers,
> > Thomas
> >
> > Benamin wrote:
> >> I have created a successful example of http consumer that sends message
> >> to an
> >> SE, and then returns that message back out to http using the
> client.html
> >> that was provided with the bridge example.
> >>
> >> I have just one issue.  After I get a status: 200 and my message back,
> if
> >> I
> >> sit and wait maybe a minute, ServiceMix logs an exception.  I am
> listing
> >> it
> >> below.  Is this a problem?  If so, how can I fix it?
> >>
> >> ERROR - MyComponent                    - Error processing exchange
> InOut[
> >>   id: ID:massive-64664-1179200462025-2:0
> >>   status: Done
> >>   role: provider
> >>   service:
> >> {
> http://servicemix.apache.org/servicemanagerassembly}ServiceManagerEnqueue
> >>   endpoint: endpoint
> >>   in: Unable to display: org.mortbay.jetty.EofException
> >>   out: Unable to display: org.mortbay.jetty.EofException
> >> ]
> >> javax.jbi.messaging.MessagingException: Out not supported
> >>         at
> >> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(
> MessageExchangeImpl.java:317)
> >>         at
> >> org.apache.servicemix.samples.serviceManagerAssembly.MyEndpoint.process
> (MyEndpoint.java:313)
> >>         at
> >> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(
> AsyncBaseLifeCycle.java:489)
> >>         at
> >> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(
> AsyncBaseLifeCycle.java:441)
> >>         at
> >> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(
> BaseLifeCycle.java:46)
> >>         at
> >> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(
> DeliveryChannelImpl.java:593)
> >>         at
> >> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(
> AbstractFlow.java:174)
> >>         at
> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(
> SedaFlow.java:176)
> >>         at
> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java
> :134)
> >>         at
> >>
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask
> (ThreadPoolExecutor.java:665)
> >>         at
> >>
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run
> (ThreadPoolExecutor.java:690)
> >>         at java.lang.Thread.run(Thread.java:595)
> >> ERROR - MyComponent                    - Error setting exchange status
> to
> >> ERROR
> >> javax.jbi.messaging.MessagingException: illegal call to send / sendSync
> >>         at
> >> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(
> MessageExchangeImpl.java:571)
> >>         at
> >> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(
> DeliveryChannelImpl.java:370)
> >>         at
> >> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(
> DeliveryChannelImpl.java:417)
> >>         at
> >> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(
> BaseLifeCycle.java:58)
> >>         at
> >> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(
> DeliveryChannelImpl.java:593)
> >>         at
> >> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(
> AbstractFlow.java:174)
> >>         at
> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(
> SedaFlow.java:176)
> >>         at
> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java
> :134)
> >>         at
> >>
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask
> (ThreadPoolExecutor.java:665)
> >>         at
> >>
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run
> (ThreadPoolExecutor.java:690)
> >>         at java.lang.Thread.run(Thread.java:595)
> >
> >
> > --
> > Thomas Termin
> > _______________________________
> > blue elephant systems GmbH
> > Wollgrasweg 49
> > D-70599 Stuttgart
> >
> > Tel    :  (+49) 0711 - 45 10 17 676
> > Fax    :  (+49) 0711 - 45 10 17 573
> > WWW    :  http://www.blue-elephant-systems.com
> > Email  :  Thomas.Termin@blue-elephant-systems.com
> >
> > blue elephant systems GmbH
> > Firmensitz      : Wollgrasweg 49, D-70599 Stuttgart
> > Registergericht : Amtsgericht Stuttgart, HRB 24106
> > Geschäftsführer : Holger Dietrich, Thomas Gentsch, Joachim Hoernle
> >
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/question-about-http-consumer-tf3756165s12049.html#a10623483
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>


-- 
Cheers,
Guillaume Nodet
------------------------
Principal Engineer, IONA
Blog: http://gnodet.blogspot.com/

Re: question about http consumer

Posted by Benamin <be...@bisonline.com>.
What do you mean by checking the status in my component?  And how would this
cause the exception?

thanks.



tterm wrote:
> 
> Is it possible that you don't check the status in your component?
> 
> Cheers,
> Thomas
> 
> Benamin wrote:
>> I have created a successful example of http consumer that sends message
>> to an
>> SE, and then returns that message back out to http using the client.html
>> that was provided with the bridge example. 
>> 
>> I have just one issue.  After I get a status: 200 and my message back, if
>> I
>> sit and wait maybe a minute, ServiceMix logs an exception.  I am listing
>> it
>> below.  Is this a problem?  If so, how can I fix it?
>> 
>> ERROR - MyComponent                    - Error processing exchange InOut[
>>   id: ID:massive-64664-1179200462025-2:0
>>   status: Done
>>   role: provider
>>   service:
>> {http://servicemix.apache.org/servicemanagerassembly}ServiceManagerEnqueue
>>   endpoint: endpoint
>>   in: Unable to display: org.mortbay.jetty.EofException
>>   out: Unable to display: org.mortbay.jetty.EofException
>> ]
>> javax.jbi.messaging.MessagingException: Out not supported
>>         at
>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:317)
>>         at
>> org.apache.servicemix.samples.serviceManagerAssembly.MyEndpoint.process(MyEndpoint.java:313)
>>         at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
>>         at
>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441)
>>         at
>> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>>         at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
>>         at
>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
>>         at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
>>         at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>         at
>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
>>         at
>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>>         at java.lang.Thread.run(Thread.java:595)
>> ERROR - MyComponent                    - Error setting exchange status to
>> ERROR
>> javax.jbi.messaging.MessagingException: illegal call to send / sendSync
>>         at
>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:571)
>>         at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:370)
>>         at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:417)
>>         at
>> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:58)
>>         at
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
>>         at
>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
>>         at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
>>         at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>         at
>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
>>         at
>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>>         at java.lang.Thread.run(Thread.java:595)
> 
> 
> -- 
> Thomas Termin
> _______________________________
> blue elephant systems GmbH
> Wollgrasweg 49
> D-70599 Stuttgart
> 
> Tel    :  (+49) 0711 - 45 10 17 676
> Fax    :  (+49) 0711 - 45 10 17 573
> WWW    :  http://www.blue-elephant-systems.com
> Email  :  Thomas.Termin@blue-elephant-systems.com
> 
> blue elephant systems GmbH
> Firmensitz      : Wollgrasweg 49, D-70599 Stuttgart
> Registergericht : Amtsgericht Stuttgart, HRB 24106
> Geschäftsführer : Holger Dietrich, Thomas Gentsch, Joachim Hoernle
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/question-about-http-consumer-tf3756165s12049.html#a10623483
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: question about http consumer

Posted by Thomas TERMIN <tt...@blue-elephant-systems.com>.
Is it possible that you don't check the status in your component?

Cheers,
Thomas

Benamin wrote:
> I have created a successful example of http consumer that sends message to an
> SE, and then returns that message back out to http using the client.html
> that was provided with the bridge example. 
> 
> I have just one issue.  After I get a status: 200 and my message back, if I
> sit and wait maybe a minute, ServiceMix logs an exception.  I am listing it
> below.  Is this a problem?  If so, how can I fix it?
> 
> ERROR - MyComponent                    - Error processing exchange InOut[
>   id: ID:massive-64664-1179200462025-2:0
>   status: Done
>   role: provider
>   service:
> {http://servicemix.apache.org/servicemanagerassembly}ServiceManagerEnqueue
>   endpoint: endpoint
>   in: Unable to display: org.mortbay.jetty.EofException
>   out: Unable to display: org.mortbay.jetty.EofException
> ]
> javax.jbi.messaging.MessagingException: Out not supported
>         at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:317)
>         at
> org.apache.servicemix.samples.serviceManagerAssembly.MyEndpoint.process(MyEndpoint.java:313)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:441)
>         at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
>         at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
>         at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
>         at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>         at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
>         at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>         at java.lang.Thread.run(Thread.java:595)
> ERROR - MyComponent                    - Error setting exchange status to
> ERROR
> javax.jbi.messaging.MessagingException: illegal call to send / sendSync
>         at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.handleSend(MessageExchangeImpl.java:571)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:370)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:417)
>         at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:58)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
>         at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
>         at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
>         at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>         at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
>         at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>         at java.lang.Thread.run(Thread.java:595)


-- 
Thomas Termin
_______________________________
blue elephant systems GmbH
Wollgrasweg 49
D-70599 Stuttgart

Tel    :  (+49) 0711 - 45 10 17 676
Fax    :  (+49) 0711 - 45 10 17 573
WWW    :  http://www.blue-elephant-systems.com
Email  :  Thomas.Termin@blue-elephant-systems.com

blue elephant systems GmbH
Firmensitz      : Wollgrasweg 49, D-70599 Stuttgart
Registergericht : Amtsgericht Stuttgart, HRB 24106
Geschäftsführer : Holger Dietrich, Thomas Gentsch, Joachim Hoernle