hi, i am using jdeveloper for a project on jms and ejb. i created jms web service where i have mentioned my queueConnectionFactory as MyQueueConnectionFactory and queue as MyQueue. the web.xml file is also created which shows this. now i have written a small client code to send messages and message driven bean to receive messages. the code is written below: package mypackage1; import javax.jms.*; import javax.naming.*; import java.util.Hashtable; import java.lang.Object; import javax.rmi.PortableRemoteObject; /** * The SimpleClient class sends several messages * to a queue. */ public class simpleClient { public simpleClient() { } /** * Main method. */ public static void main(String[] args) { Context jndiContext = null; QueueConnectionFactory queueConnectionFactory = null; QueueConnection queueConnection = null; QueueSession queueSession = null; Queue queue = null; QueueSender queueSender = null; TextMessage message = null; final int NUM_MSGS = 3;
/* * Create a JNDI API InitialContext object. */ try { Hashtable env = new Hashtable(); env.put (Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory"); env.put(Context.SECURITY_PRINCIPAL, "admin"); env.put(Context.SECURITY_CREDENTIALS, "welcome"); env.put(Context.PROVIDER_URL, "ormi://localhost:23893/current-workspace-app"); jndiContext = new InitialContext(env); System.out.println("context: " + jndiContext);
} catch (NamingException e) { System.out.println("Could not create JNDI API " + "context: " + e.toString()); System.exit(1); }
/* * Look up connection factory and queue. If either does not exist, exit. */ try { queueConnectionFactory = (QueueConnectionFactory) PortableRemoteObject.narrow(jndiContext.lookup ("jms/MyQueueConnectionFactory"),QueueConnectionF actory.class); System.out.println("found QCF "); queue = (Queue)jndiContext.lookup("jms/MyQueue"); System.out.println("found Q"); } catch (NamingException e) { System.out.println("JNDI API lookup failed: " + e.toString()); System.exit(1); } /* * Create connection. * Create session from connection; false means session is not transacted. * Create sender and text message. * Send messages, varying text slightly. * Finally, close connection. */ try { queueConnection = queueConnectionFactory.createQueueConnection(); queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); queueSender = queueSession.createSender(queue); message = queueSession.createTextMessage(); for (int i = 0; i (lessa than) NUM_MSGS; i++)//sorry for syntax error, this page was not excepting less than sign. { message.setText("This is message " + (i + 1)); System.out.println("Sending message: " + message.getText()); queueSender.send(message); } } catch (JMSException e) { System.out.println("Exception occurred: " + e.toString()); } finally { if (queueConnection != null) { try { queueConnection.close(); } catch (JMSException e) {} } System.exit(0); } } } while running this client code i get the following output: context: javax.naming.InitialContext@4 JNDI API lookup failed: javax.naming.NamingException: Lookup error: java.net.ConnectException: Connection refused: connect; nested exception is: java.net.ConnectException: Connection refused: connect Process exited with exit code 1. i tried both local and remote lookups to see if either works. but i m not able to find the error. please let me know wht should i do to solve this problem. thanks, ashmi.
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.