You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Ian Harrigan <ia...@hotmail.com> on 2009/06/22 19:55:54 UTC

Alternative to defaultOperation in new JMS endpoints

Hi,

I was recently trying to convert my old JMS consumer (using <jms:endpoint role="consumer".../>) to the newer jms:consumer endpoints to take advantage of various enhancements that it offers however, i have a problem with it kicking off my BPEL process (which worked fine on the old endpoints). 

My old endpoint was as follows:

    <jms:endpoint service="client:MessageBrokerProvider"
                  endpoint="MessageBrokerPort"
                  targetService="client:MessageBrokerProvider"
                  defaultOperation="client:Execute" 
                  role="consumer" 
                  destinationStyle="queue"
                  jmsProviderDestinationName="GATEWAY_INPUT_Q"
                  connectionFactory="#connectionFactory"
                  defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
                  useMsgIdInResponse ="true"/>

and my new one looks like:

 <jms:consumer service="client:MessageBrokerProvider"
   endpoint="MessageBrokerPort"
   targetService="client:MessageBrokerProvider"  
   targetEndpoint = "MessageBrokerPort"
   destinationName="GATEWAY_INPUT_Q"
   connectionFactory="#connectionFactory"
   useMessageIdInResponse="true"/>

The exception im getting from service mix is "java.lang.IllegalArgumentException: Null operation in JBI message exchange", which makes sense as it isnt there in the new version, whats the alternative to this? This all works fine with the old endpoint so is there an equivalent to do what the old one does?

Thanks in advance,
Ian


Re: Alternative to defaultOperation in new JMS endpoints

Posted by Gert Vanthienen <ge...@gmail.com>.
Ian,

This feature seems to be missing from the new JMS consumer endpoint.
Could you please raise a JIRA issue (cfr.
http://servicemix.apache.org/contributing.html for more information)
for this?  Btw, patches are welcome too ;)

As a temporary workaround, you could create your own Marshaler that
extends the DefaultConsumerMarshaler and adds the operation to the
MessageExchange.

Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



2009/6/22 Ian Harrigan <ia...@hotmail.com>:
> Hi,
>
> I was recently trying to convert my old JMS consumer (using <jms:endpoint role="consumer".../>) to the newer jms:consumer endpoints to take advantage of various enhancements that it offers however, i have a problem with it kicking off my BPEL process (which worked fine on the old endpoints).
>
> My old endpoint was as follows:
>
>    <jms:endpoint service="client:MessageBrokerProvider"
>                  endpoint="MessageBrokerPort"
>                  targetService="client:MessageBrokerProvider"
>                  defaultOperation="client:Execute"
>                  role="consumer"
>                  destinationStyle="queue"
>                  jmsProviderDestinationName="GATEWAY_INPUT_Q"
>                  connectionFactory="#connectionFactory"
>                  defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
>                  useMsgIdInResponse ="true"/>
>
> and my new one looks like:
>
>  <jms:consumer service="client:MessageBrokerProvider"
>   endpoint="MessageBrokerPort"
>   targetService="client:MessageBrokerProvider"
>   targetEndpoint = "MessageBrokerPort"
>   destinationName="GATEWAY_INPUT_Q"
>   connectionFactory="#connectionFactory"
>   useMessageIdInResponse="true"/>
>
> The exception im getting from service mix is "java.lang.IllegalArgumentException: Null operation in JBI message exchange", which makes sense as it isnt there in the new version, whats the alternative to this? This all works fine with the old endpoint so is there an equivalent to do what the old one does?
>
> Thanks in advance,
> Ian
>
>