I added the double quotes around it and still same error. Is there any difference in the grammars? I am currently using 0.6 and 0.8 and they both give me same error. For some coordination issues with others in the team, I cant move on to use 0.10 at this moment :)
On Thu, May 19, 2011 at 5:55 PM, Rajith Attapattu <[email protected]>wrote: > 1. Two issues. It looks like you have an older version where the > default syntax is Binding URL. > So which version are you using? I'd recommend using the latest > release (0.10 release). > > 2. Once you fix your first problem, then use double quotes around your > address string > > destination.header = "my-subscription-queue; {create:always, > node:{x-declare:{auto-delete:True}, > x-bindings:[{queue:my-subscription-queue, exchange:'amq.match', > arguments:{'x-match':any, 'userid':10}}]}}" > > Regards, > > Rajith > > On Thu, May 19, 2011 at 5:36 PM, qpid user 2 <[email protected]> > wrote: > > Guys. I am using the following destination address in my jndi property, > as > > advised: > > destination.header = my-subscription-queue; {create:always, > > node:{x-declare:{auto-delete:True}, > > x-bindings:[{queue:my-subscription-queue, exchange:'amq.match', > > arguments:{'x-match':any, 'userid':10}}]}} > > > > but I am getting a parsing error when parsing for context, as follows. Am > I > > missing anything? > > > > > > WARNING: Unable to create destination:java.net.URISyntaxException: Error > > occured while parsing URL at index 182: my-subscription-queue; > > {create:always, node:{x-declare:{auto-delete:True}, > > x-bindings:[{queue:my-subscription-queue, exchange:'amq.match', > > arguments:{'x-match':any, 'userid':10}}]}}%^ > > java.net.URISyntaxException: Error occured while parsing URL at index > 182: > > my-subscription-queue; {create:always, > node:{x-declare:{auto-delete:True}, > > x-bindings:[{queue:my-subscription-queue, exchange:'amq.match', > > arguments:{'x-match':any, 'userid':10}}]}}%^ > > at > org.apache.qpid.url.BindingURLParser.<init>(BindingURLParser.java:88) > > at > > org.apache.qpid.url.AMQBindingURL.parseBindingURL(AMQBindingURL.java:58) > > at org.apache.qpid.url.AMQBindingURL.<init>(AMQBindingURL.java:53) > > at > > > org.apache.qpid.jndi.PropertiesFileInitialContextFactory.createDestination(PropertiesFileInitialContextFactory.java:241) > > at > > > org.apache.qpid.jndi.PropertiesFileInitialContextFactory.createDestinations(PropertiesFileInitialContextFactory.java:160) > > at > > > org.apache.qpid.jndi.PropertiesFileInitialContextFactory.getInitialContext(PropertiesFileInitialContextFactory.java:117) > > at > > javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667) > > at > > javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288) > > at javax.naming.InitialContext.init(InitialContext.java:223) > > at javax.naming.InitialContext.<init>(InitialContext.java:197) > > at > > > rim.core.instrumentation.subscription.Subscription.main(Subscription.java:37) > > Caused by: java.lang.ArrayIndexOutOfBoundsException: 182 > > at > > > org.apache.qpid.url.BindingURLParser.extractExchangeName(BindingURLParser.java:218) > > at > org.apache.qpid.url.BindingURLParser.next(BindingURLParser.java:137) > > at > org.apache.qpid.url.BindingURLParser.<init>(BindingURLParser.java:70) > > ... 10 more > > > > > > Thanks > > Siamak > > > > > > > > On Thu, May 19, 2011 at 10:55 AM, Gordon Sim <[email protected]> wrote: > > > >> On 05/19/2011 03:53 PM, Rajith Attapattu wrote: > >> > >>> On Thu, May 19, 2011 at 10:04 AM, Gordon Sim<[email protected]> wrote: > >>> > >>>> On 05/19/2011 02:36 PM, qpid user 2 wrote: > >>>> > >>>>> > >>>>> So any input on this? I am trying to construct a header exchange > >>>>> subscription using JMS. How would the destination and jndi properties > >>>>> look > >>>>> like? > >>>>> > >>>> > >>>> For python or c++ the following address is an example of what you > want: > >>>> > >>>> my-headers-exchange; > >>>> {link:{x-bindings:[{arguments:{'x-match':all,a:b,c:d}}]}} > >>>> > >>>> That is assuming you have created the headers exchange named > >>>> my-headers-exchange already, e.g. with qpid-config. This will match > any > >>>> message with both a header keyed 'a' with value 'b' and a header keyed > >>>> 'c' > >>>> with value 'd'. > >>>> > >>>> Unfortunately it would appear there is a bug in the JMS client > preventing > >>>> this from working there. ( > >>>> https://issues.apache.org/jira/browse/QPID-3265) > >>>> > >>>> An alternative address would be: > >>>> > >>>> my-subscription-queue; {create:always, > >>>> node:{x-declare:{auto-delete:True}, > >>>> x-bindings:[{queue:my-subscription-queue, > exchange:my-headers-exchange, > >>>> arguments:{'x-match':all,a:b,c:d}}]}} > >>>> > >>>> However that requires that my-subscription-queue be a unique name - > not > >>>> sure > >>>> how well that will work for a JNDI based destination. > >>>> > >>> > >>> I verified that the above addressing string can be specified in the > >>> JNDI properties. > >>> > >> > >> The point is not that it can't be specified in JNDI but that multiple > >> consumers created from the destination obtained will all be using the > same > >> queue and will thus compete for messages which is not what you want. > >> > >> If there was only going to be one consumer that might not be an issue of > >> course. > >> > >> > >> --------------------------------------------------------------------- > >> Apache Qpid - AMQP Messaging Implementation > >> Project: http://qpid.apache.org > >> Use/Interact: mailto:[email protected] > >> > >> > > > > --------------------------------------------------------------------- > Apache Qpid - AMQP Messaging Implementation > Project: http://qpid.apache.org > Use/Interact: mailto:[email protected] > >
