You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Charles Souillard <Ch...@ext.bull.net> on 2006/03/31 16:37:54 UTC

example

Hi all,

I am trying to create my own example :

client   ---- HTTP ---> sm-http  ------>  drools (sm-lwcontainer)  
------->  sm-jms   ------> client waiting on a queue

Nothing is happening as if one of the routing was not done...
I have activated the traces : is it normal that the last exchange we can 
see is 'accept" instead of 'sent' ?

I have added traces into drools component and none of them is printed...
I think drools component never get the message but as I am not sure to 
well interpret traces..

Can you tell me what is happening in SM thanks to traces ?
Is one of my SU wrong ?

Thanks,
Charles

Traces I get :

DEBUG - JCLLoggerAdapter.debug(121) | REQUEST 
/serviceMisOnJOnASExample1/ on org.mortbay.jetty.HttpConnection@17fc44f
DEBUG - JCLLoggerAdapter.debug(121) | servlet=jbiServlet
DEBUG - JCLLoggerAdapter.debug(121) | chain=null
DEBUG - JCLLoggerAdapter.debug(121) | servelet holder=jbiServlet
DEBUG - DeliveryChannelImpl.traceMessageExchange(342) | Sent: 
MessageExchange[
  id: ID:frec445363-47743-1143815513807-2:0
  status: Active
  role: consumer
  service: {urn:servicemix:jonas:example1}droolsRouter
  in: <?xml version="1.0" encoding="UTF-8"?><in>example1</in>
]
DEBUG - JCLLoggerAdapter.debug(121) | continuation 
org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation@cf3539
DEBUG - DeliveryChannelImpl.traceMessageExchange(342) | Sent: 
MessageExchange[
  id: ID:frec445363-47743-1143815513807-2:0
  status: Done
  role: provider
  service: {urn:servicemix:jonas:example1}droolsRouter
  endpoint: droolsRouter
  in: <?xml version="1.0" encoding="UTF-8"?><in>example1</in>
]
DEBUG - DeliveryChannelImpl.accept(369) | Accepting 
ID:frec445363-47743-1143815513807-2:0 in DeliveryChannel{servicemix-http}
DEBUG - DeliveryChannelImpl.traceMessageExchange(342) | Accepted: 
MessageExchange[
  id: ID:frec445363-47743-1143815513807-2:0
  status: Done
  role: consumer
  service: {urn:servicemix:jonas:example1}droolsRouter
  endpoint: droolsRouter
  in: <?xml version="1.0" encoding="UTF-8"?><in>example1</in>
]



Here are my SUs :

*sm-http su*

<beans xmlns:http="http://servicemix.apache.org/http/1.0"
       xmlns:example1="urn:servicemix:jonas:example1">
<!--  soap="true" -->
    <http:endpoint service="example1:droolsRouter"
                   endpoint="example1DroolsRouter"
                   role="consumer"
                   
locationURI="http://localhost:8192/serviceMisOnJOnASExample1/"
                   defaultMep="http://www.w3.org/2004/08/wsdl/in-only"
                   />

</beans>

*drools-su
*
<beans xmlns="http://xbean.org/schemas/spring/1.0"
    xmlns:spring="http://xbean.org/schemas/spring/1.0"
    xmlns:sm="http://servicemix.apache.org/config/1.0"
    xmlns:example1="urn:servicemix:jonas:example1">

    <sm:serviceunit id="jbi">
        <sm:activationSpecs>
                <!--  endpoint="example1DroolsRouter" -->
            <sm:activationSpec componentName="droolsRouter" 
service="example1:droolsRouter">
                <sm:component>
                    <bean
                        
class="org.apache.servicemix.components.drools.DroolsComponent">
                        <property name="ruleBaseResource"
                            
value="file:///home/souillac/workspace/ServiceMixOnJOnAS/example1/drools-engine-su/rulebase.xml" 
/>
                    </bean>
                </sm:component>
            </sm:activationSpec>
        </sm:activationSpecs>
    </sm:serviceunit>

</beans>


*jms-su
*
<beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
    xmlns:example1="urn:servicemix:jonas:example1">
    <!--         QCF    connectionFactory    soap="true"   -->
    <jms:endpoint service="example1:example1JmsProvider"
        endpoint="example1JmsProvider"
        role="provider"
        destinationStyle="queue"
        jmsProviderDestinationName="ServiceMixOnJOnASExample1Queue"
        jndiConnectionFactoryName="JQCF"  />


</beans>



Re: example

Posted by Charles Souillard <Ch...@ext.bull.net>.
Guillaume,

Thank you for this answer.

How can I verify what is happening after drools receives the message ?
I have added some breakpoints in sm-jms coponent in MultiplexingConsumer 
and MultiplexingProvider both in onMessage and process methods but they 
are never called... That is why I was thinking the message was not 
delivered to sm-jms component...

During the SU deployment, I get the following message, is it an error 
(no description found) ?
2006-04-03 10:37:14,336 : ComponentContextImpl.activateEndpoint : 
Component: servicemix-jms activated endpoint: 
{urn:servicemix:jonas:example1}example1JmsProvider : example1JmsProvider
2006-04-03 10:37:14,337 : BaseComponent.getServiceDescription : Querying 
service description for 
ServiceEndpoint[service={urn:servicemix:jonas:example1}example1JmsProvider,endpoint=example1JmsProvider]
2006-04-03 10:37:14,340 : BaseComponent.getServiceDescription : No 
description found for 
{urn:servicemix:jonas:example1}example1JmsProvider:example1JmsProvider
2006-04-03 10:37:14,341 : 
EndpointRegistry.retrieveInterfacesFromDescription : Endpoint 
ServiceEndpoint[service={urn:servicemix:jonas:example1}example1JmsProvider,endpoint=example1JmsProvider] 
has no service description
2006-04-03 10:37:15,429 : BaseServiceUnitManager.start : Service unit 
started

Do you think the su description files I sent you in the previous mail 
are correct ?

Thanks
Charles

Guillaume Nodet wrote:
> It seems fine to me.  The drools component replies with a DONE status
> that is accepted by the http component.
> I think the accept traces for the drools component are not shown
> because it implements the MessageExchangeListener interface that
> bypasses them.
>
> Cheers,
> Guillaume Nodet
>
> On 3/31/06, Charles Souillard <Ch...@ext.bull.net> wrote:
>   
>> Hi all,
>>
>> I am trying to create my own example :
>>
>> client   ---- HTTP ---> sm-http  ------>  drools (sm-lwcontainer)
>> ------->  sm-jms   ------> client waiting on a queue
>>
>> Nothing is happening as if one of the routing was not done...
>> I have activated the traces : is it normal that the last exchange we can
>> see is 'accept" instead of 'sent' ?
>>
>> I have added traces into drools component and none of them is printed...
>> I think drools component never get the message but as I am not sure to
>> well interpret traces..
>>
>> Can you tell me what is happening in SM thanks to traces ?
>> Is one of my SU wrong ?
>>
>> Thanks,
>> Charles
>>
>> Traces I get :
>>
>> DEBUG - JCLLoggerAdapter.debug(121) | REQUEST
>> /serviceMisOnJOnASExample1/ on org.mortbay.jetty.HttpConnection@17fc44f
>> DEBUG - JCLLoggerAdapter.debug(121) | servlet=jbiServlet
>> DEBUG - JCLLoggerAdapter.debug(121) | chain=null
>> DEBUG - JCLLoggerAdapter.debug(121) | servelet holder=jbiServlet
>> DEBUG - DeliveryChannelImpl.traceMessageExchange(342) | Sent:
>> MessageExchange[
>>   id: ID:frec445363-47743-1143815513807-2:0
>>   status: Active
>>   role: consumer
>>   service: {urn:servicemix:jonas:example1}droolsRouter
>>   in: <?xml version="1.0" encoding="UTF-8"?><in>example1</in>
>> ]
>> DEBUG - JCLLoggerAdapter.debug(121) | continuation
>> org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation@cf3539
>> DEBUG - DeliveryChannelImpl.traceMessageExchange(342) | Sent:
>> MessageExchange[
>>   id: ID:frec445363-47743-1143815513807-2:0
>>   status: Done
>>   role: provider
>>   service: {urn:servicemix:jonas:example1}droolsRouter
>>   endpoint: droolsRouter
>>   in: <?xml version="1.0" encoding="UTF-8"?><in>example1</in>
>> ]
>> DEBUG - DeliveryChannelImpl.accept(369) | Accepting
>> ID:frec445363-47743-1143815513807-2:0 in DeliveryChannel{servicemix-http}
>> DEBUG - DeliveryChannelImpl.traceMessageExchange(342) | Accepted:
>> MessageExchange[
>>   id: ID:frec445363-47743-1143815513807-2:0
>>   status: Done
>>   role: consumer
>>   service: {urn:servicemix:jonas:example1}droolsRouter
>>   endpoint: droolsRouter
>>   in: <?xml version="1.0" encoding="UTF-8"?><in>example1</in>
>> ]
>>
>>
>>
>> Here are my SUs :
>>
>> *sm-http su*
>>
>> <beans xmlns:http="http://servicemix.apache.org/http/1.0"
>>        xmlns:example1="urn:servicemix:jonas:example1">
>> <!--  soap="true" -->
>>     <http:endpoint service="example1:droolsRouter"
>>                    endpoint="example1DroolsRouter"
>>                    role="consumer"
>>
>> locationURI="http://localhost:8192/serviceMisOnJOnASExample1/"
>>                    defaultMep="http://www.w3.org/2004/08/wsdl/in-only"
>>                    />
>>
>> </beans>
>>
>> *drools-su
>> *
>> <beans xmlns="http://xbean.org/schemas/spring/1.0"
>>     xmlns:spring="http://xbean.org/schemas/spring/1.0"
>>     xmlns:sm="http://servicemix.apache.org/config/1.0"
>>     xmlns:example1="urn:servicemix:jonas:example1">
>>
>>     <sm:serviceunit id="jbi">
>>         <sm:activationSpecs>
>>                 <!--  endpoint="example1DroolsRouter" -->
>>             <sm:activationSpec componentName="droolsRouter"
>> service="example1:droolsRouter">
>>                 <sm:component>
>>                     <bean
>>
>> class="org.apache.servicemix.components.drools.DroolsComponent">
>>                         <property name="ruleBaseResource"
>>
>> value="file:///home/souillac/workspace/ServiceMixOnJOnAS/example1/drools-engine-su/rulebase.xml"
>> />
>>                     </bean>
>>                 </sm:component>
>>             </sm:activationSpec>
>>         </sm:activationSpecs>
>>     </sm:serviceunit>
>>
>> </beans>
>>
>>
>> *jms-su
>> *
>> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
>>     xmlns:example1="urn:servicemix:jonas:example1">
>>     <!--         QCF    connectionFactory    soap="true"   -->
>>     <jms:endpoint service="example1:example1JmsProvider"
>>         endpoint="example1JmsProvider"
>>         role="provider"
>>         destinationStyle="queue"
>>         jmsProviderDestinationName="ServiceMixOnJOnASExample1Queue"
>>         jndiConnectionFactoryName="JQCF"  />
>>
>>
>> </beans>
>>
>>
>>
>>     
>
>   

Re: example

Posted by Guillaume Nodet <gn...@gmail.com>.
It seems fine to me.  The drools component replies with a DONE status
that is accepted by the http component.
I think the accept traces for the drools component are not shown
because it implements the MessageExchangeListener interface that
bypasses them.

Cheers,
Guillaume Nodet

On 3/31/06, Charles Souillard <Ch...@ext.bull.net> wrote:
> Hi all,
>
> I am trying to create my own example :
>
> client   ---- HTTP ---> sm-http  ------>  drools (sm-lwcontainer)
> ------->  sm-jms   ------> client waiting on a queue
>
> Nothing is happening as if one of the routing was not done...
> I have activated the traces : is it normal that the last exchange we can
> see is 'accept" instead of 'sent' ?
>
> I have added traces into drools component and none of them is printed...
> I think drools component never get the message but as I am not sure to
> well interpret traces..
>
> Can you tell me what is happening in SM thanks to traces ?
> Is one of my SU wrong ?
>
> Thanks,
> Charles
>
> Traces I get :
>
> DEBUG - JCLLoggerAdapter.debug(121) | REQUEST
> /serviceMisOnJOnASExample1/ on org.mortbay.jetty.HttpConnection@17fc44f
> DEBUG - JCLLoggerAdapter.debug(121) | servlet=jbiServlet
> DEBUG - JCLLoggerAdapter.debug(121) | chain=null
> DEBUG - JCLLoggerAdapter.debug(121) | servelet holder=jbiServlet
> DEBUG - DeliveryChannelImpl.traceMessageExchange(342) | Sent:
> MessageExchange[
>   id: ID:frec445363-47743-1143815513807-2:0
>   status: Active
>   role: consumer
>   service: {urn:servicemix:jonas:example1}droolsRouter
>   in: <?xml version="1.0" encoding="UTF-8"?><in>example1</in>
> ]
> DEBUG - JCLLoggerAdapter.debug(121) | continuation
> org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation@cf3539
> DEBUG - DeliveryChannelImpl.traceMessageExchange(342) | Sent:
> MessageExchange[
>   id: ID:frec445363-47743-1143815513807-2:0
>   status: Done
>   role: provider
>   service: {urn:servicemix:jonas:example1}droolsRouter
>   endpoint: droolsRouter
>   in: <?xml version="1.0" encoding="UTF-8"?><in>example1</in>
> ]
> DEBUG - DeliveryChannelImpl.accept(369) | Accepting
> ID:frec445363-47743-1143815513807-2:0 in DeliveryChannel{servicemix-http}
> DEBUG - DeliveryChannelImpl.traceMessageExchange(342) | Accepted:
> MessageExchange[
>   id: ID:frec445363-47743-1143815513807-2:0
>   status: Done
>   role: consumer
>   service: {urn:servicemix:jonas:example1}droolsRouter
>   endpoint: droolsRouter
>   in: <?xml version="1.0" encoding="UTF-8"?><in>example1</in>
> ]
>
>
>
> Here are my SUs :
>
> *sm-http su*
>
> <beans xmlns:http="http://servicemix.apache.org/http/1.0"
>        xmlns:example1="urn:servicemix:jonas:example1">
> <!--  soap="true" -->
>     <http:endpoint service="example1:droolsRouter"
>                    endpoint="example1DroolsRouter"
>                    role="consumer"
>
> locationURI="http://localhost:8192/serviceMisOnJOnASExample1/"
>                    defaultMep="http://www.w3.org/2004/08/wsdl/in-only"
>                    />
>
> </beans>
>
> *drools-su
> *
> <beans xmlns="http://xbean.org/schemas/spring/1.0"
>     xmlns:spring="http://xbean.org/schemas/spring/1.0"
>     xmlns:sm="http://servicemix.apache.org/config/1.0"
>     xmlns:example1="urn:servicemix:jonas:example1">
>
>     <sm:serviceunit id="jbi">
>         <sm:activationSpecs>
>                 <!--  endpoint="example1DroolsRouter" -->
>             <sm:activationSpec componentName="droolsRouter"
> service="example1:droolsRouter">
>                 <sm:component>
>                     <bean
>
> class="org.apache.servicemix.components.drools.DroolsComponent">
>                         <property name="ruleBaseResource"
>
> value="file:///home/souillac/workspace/ServiceMixOnJOnAS/example1/drools-engine-su/rulebase.xml"
> />
>                     </bean>
>                 </sm:component>
>             </sm:activationSpec>
>         </sm:activationSpecs>
>     </sm:serviceunit>
>
> </beans>
>
>
> *jms-su
> *
> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
>     xmlns:example1="urn:servicemix:jonas:example1">
>     <!--         QCF    connectionFactory    soap="true"   -->
>     <jms:endpoint service="example1:example1JmsProvider"
>         endpoint="example1JmsProvider"
>         role="provider"
>         destinationStyle="queue"
>         jmsProviderDestinationName="ServiceMixOnJOnASExample1Queue"
>         jndiConnectionFactoryName="JQCF"  />
>
>
> </beans>
>
>
>