- From: Andrew Kennedy <andrewinternational@gmail.com>
- Date: Mon, 22 Nov 2010 01:12:30 +0000
- To: public-soap-jms@w3.org
Hi. I was looking at the latest SOAP over JMS specification draft and in particular the description of setting JMS header (or QoS) properties, with example code: http://www.w3.org/TR/2010/WD-soapjms-20101026/#binding-header- props-xmp The example code given in section 2.2.2.1 "Setting JMS Message Header properties" will not work as described. These properties on a message can only be set by a JMS provider, and are basically read-only as far as clients are concerned. To send a message using non-default QoS values you need to use the four-argument send method, as shown in the final (commented out) line of the example. A corrected example would therefore use a method looking something like this: // add appropriate error checking for your use.... public void someMethod(Context ctx, MessageProducer producer, Message jmsMessage, String deliveryModeStr, String replyToName, int priority, long timeToLive) { // set the delivery mode to the appropriate constant value. int deliveryMode = deliveryModeStr.equals("PERSISTENT") ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT; // Set the reply destination, first looking it up using JNDI Destination replyDestination = ctx.lookup(replyToName); jmsMessage.setJMSReplyTo(replyDestination); // and finally, send the message. producer.send(jmsMessage, deliveryMode, priority, timeToLive); } Note the API for the Message class where these methods are documented as being solely for JMS providers: http://download.oracle.com/javaee/1.3/api/javax/jms/ Message.html#setJMSPriority(int) Cheers, Andrew. -- -- andrew d kennedy ? apache qpid project : http://qpid.apache.org/ ;
Received on Monday, 22 November 2010 07:36:39 UTC