-
Bug
-
Resolution: Obsolete
-
Major
-
None
-
JBossAS-4.0.4.GA
-
None
-
Workaround Exists
-
JMSTransportSupport is not portable across different JMS providers, the queue name is retrieved using the following code: -
String fromName = null;
Destination destination = message.getJMSDestination();
if (destination instanceof Queue)
fromName = "queue/" + ((Queue)destination).getQueueName();
if (destination instanceof Topic)
fromName = "topic/" + ((Topic)destination).getTopicName();
For JBossMQ this is fine and it results in a name that matches the JNDI name of the queue, for WebSphereMQ this returns the name of the queue as configured on WebSphere not the JNDI name the queue is bound to in JBoss.
The Javadoc for Queue describes the getQueueName as not being suitable for portable clients: -
http://java.sun.com/j2ee/1.4/docs/api/javax/jms/Queue.html
A more portable solution could be to lookup a variable in the ENC that contains the name of the web service, this could either be provided by the user deploying the MDB or the web service deployer could bind a value to the ENC of the message driven bean as the web service is deployed.