You don't explicitly create the ConnectionFactory, it is created for you at start up time as long as you are using a server configuration that has JMS deployed. Which JBoss are you using?? Check your server configuration's deploy directory for deployment descriptors for JMS services. Alternatively, you can look at the JNDI view from the JMX-Console and look for ConnectionFactory to be bound to the global JNDI space. If it is bound, then all you have to do is look it up and look up your Topic/Queue and you're ready to go.