I am new to JMS and I am trying to load connectionFactory. I followed a few tutorials, but for some reason this does not seem to work, I get an exception every time I try a ".lookup" connectionfactory. I am using JBoss7.1.
Here is the class I'm trying to get connectionFactory from:
public class QueueSend extends Frame implements ActionListener { private QueueConnectionFactory qconFactory; private QueueConnection qcon; private QueueSession qsession; private QueueSender qsender; private Queue queue; private TextMessage msg; private TextField tf=new TextField(); private Button send=new Button("Send"); public QueueSend(){ super("Queue Sender"); setLocation(150,50); setSize(200,100); add(tf); add(send,BorderLayout.SOUTH); send.addActionListener(this); send.setEnabled(false); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent w){ send("quit"); close(); System.exit(0); } }); setVisible(true); init(); } public void init(){ try{ InitialContext ctx = getInitialContext(); qconFactory = (QueueConnectionFactory) ctx.lookup("ConnectionFactory"); queue = (Queue) ctx.lookup("java:/queue/text"); qcon = qconFactory.createQueueConnection(); qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); qsender = qsession.createSender(queue); qcon.start(); send.setEnabled(true); }catch(NamingException e1){e1.printStackTrace(); }catch(JMSException e2){e2.printStackTrace();} } public void actionPerformed(ActionEvent e){ String message=tf.getText(); tf.setText(""); if(message.length()>0) send(message); } public void send(String message){ try{
I get this exception:
javax.naming.NameNotFoundException: ConnectionFactory -- service jboss.naming.context.java.jboss.exported.ConnectionFactory at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:97) at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:178) at org.jboss.naming.remote.protocol.v1.Protocol$1.handleServerMessage(Protocol.java:127) at org.jboss.naming.remote.protocol.v1.RemoteNamingServerV1$MessageReciever$1.run(RemoteNamingServerV1.j ava:73) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
When I log into the JBoss server from a browser, I cannot find "ConnectionFactory" in the "Naming" tab
this is from standalone-full.xml file:
<jms-connection-factories> <connection-factory name="InVmConnectionFactory"> <connectors> <connector-ref connector-name="in-vm"/> </connectors> <entries> <entry name="java:/ConnectionFactory"/> </entries> </connection-factory> <connection-factory name="RemoteConnectionFactory"> <connectors> <connector-ref connector-name="netty"/> </connectors> <entries> <entry name="RemoteConnectionFactory"/> <entry name="java:jboss/exported/jms/RemoteConnectionFactory"/> </entries> </connection-factory> <pooled-connection-factory name="hornetq-ra"> <transaction mode="xa"/> <connectors> <connector-ref connector-name="in-vm"/> </connectors> <entries> <entry name="java:/JmsXA"/> </entries> </pooled-connection-factory> </jms-connection-factories>
What am I doing wrong?
java jboss jms jndi
javaLovah
source share