Hi,

The EJB and JMS forums said JMS over HTTP is easy, but it still defeats me.  I 
hope this is simple enough to fit in them beginners forum, because I need a 
simple beginning point.
 
MessageTest below is a client that sends and retreives a JMS message that says 
"Success" from a Queue whose JNDI name is queue/goIn.

The type parameter in mb.setUp (int type) in main() (Where type =  [REG | 
HTTP]) determines whether the send and receive go over HTTP.

type = REG works fine:  See "Screen Print REG"  below the code
type = HTTP fails as shown: See "Screen Print HTTP" below that.

Are there some deployment xml files I need to modify?

It seems that this simple model would be useful to other new guys too, so I 
hope it is as simple as the more advanced foriums say..import 
java.lang.reflect.Method;
  | 
  | import java.util.Properties;
  | 
  | import javax.jms.JMSException;
  | import javax.jms.Message;
  | import javax.jms.Queue;
  | import javax.jms.QueueConnection;
  | import javax.jms.ConnectionFactory;
  | import javax.jms.QueueConnectionFactory;
  | import javax.jms.QueueReceiver;
  | import javax.jms.QueueSession;
  | import javax.jms.QueueSender;
  | import javax.jms.Session;
  | import javax.jms.TextMessage;
  | 
  | import javax.naming.Context;
  | import javax.naming.InitialContext;
  | import javax.naming.NamingException;
  | 
  | public class MessageTest {
  | 
  |   public static void main (String[] args) {
  |     MessageTest mb = new MessageTest ();
  |      /**
  |     * The type parameter in setUp (int type)
  |     * may be changed manually between
  |     * REG & HTTP
  |     **/
  |     mb.setUp (REG);
  |   }
  | 
  |   // method
  |   public void setUp (int type) {
  |             System.out.println ("Type = " + TYPE [type]);
  |     try {
  |       // get initial context
  |       Properties p = new Properties();
  |       switch (type) {
  |         case REG:
  |           p.put(Context.INITIAL_CONTEXT_FACTORY,
  |                 "org.jnp.interfaces.NamingContextFactory");
  |           p.put(Context.PROVIDER_URL,
  |                 "jnp://localhost:1099");
  |           p.put(Context.URL_PKG_PREFIXES,
  |                 "org.jnp.interfaces");
  |           break;
  |         case HTTP:
  |           p.put(Context.INITIAL_CONTEXT_FACTORY,
  |                 "org.jboss.naming.HttpNamingContextFactory");
  |           p.put(Context.PROVIDER_URL,
  |                 "http://localHost:80/invoker/JMXInvokerServlet";);
  |           p.put(javax.naming.Context.URL_PKG_PREFIXES,
  |             "org.jboss.naming:org.jnp.interfaces");
  |           break;
  |       }
  | 
  |       System.out.println ("Calling InitialContext");
  |       ctx = new InitialContext(p);
  |       System.out.println ("InitialContext Found");
  | 
  |       // lookup connection factory
  |       factory = (QueueConnectionFactory)ctx.lookup("ConnectionFactory");
  |       System.out.println ("Connection Factory instantiated");
  | 
  |       // lookup destination
  |       destination = (Queue)ctx.lookup("queue/goIn");
  |       System.out.println ("Destination instantiated");
  | 
  |       // create connection
  |       connection = factory.createQueueConnection();
  |       System.out.println ("Connection instantiated");
  | 
  |       // create session
  |       session = connection.createQueueSession(false, 
Session.AUTO_ACKNOWLEDGE);
  |       System.out.println ("Session instantiated");
  | 
  |       // create sender
  |       sender = session.createSender(destination);
  |       System.out.println ("Sender instantiated");
  | 
  |       // create receiver
  |       receiver = session.createReceiver(destination);
  |       System.out.println ("Receiver instantiated");
  | 
  |       // create message w/text & selector property
  |       message = session.createTextMessage("Success");
  |       System.out.println ("Message instantiated");
  |       message.setStringProperty ("Player", "one");
  |       System.out.println ("Message Property 'Player' set to 'one'");
  | 
  |       // starting connection
  |       connection.start ();
  |       System.out.println ("Connection Started");
  | 
  |       // send message
  |       sender.send(message);
  |       System.out.println ("Message Sent");
  | 
  |       // receive message
  |       message = (TextMessage) receiver.receive ();
  |       System.out.println ("Message Received: " + message.getText ());
  | 
  |     } catch (NamingException e) {
  |       System.out.println ("Naming Exception");
  |       e.printStackTrace ();
  |     } catch (JMSException e) {
  |       System.out.println ("JMS Execption");
  |       e.printStackTrace ();
  |     } finally {
  |       if (connection != null) {
  |         try {
  |           connection.stop ();
  |           connection.close();
  |         } catch (JMSException e) {
  |         }
  |       }
  |     }
  |     System.out.println("SetUp Done.");
  |   }
  | 
  |   // members
  |   static final int REG  = 0;
  |   static final int HTTP = 1;
  |   static final String[] TYPE = {"REG", "HTTP"};
  |   int type;
  |   Context ctx;
  |   Queue                  destination;
  |   QueueConnection        connection;
  |   QueueConnectionFactory factory;
  |   QueueReceiver          receiver;
  |   QueueSession           session;
  |   QueueSender            sender;
  |   TextMessage            message;
  | }Screen Print REG:Type = REG
  | Calling InitialContext
  | InitialContext Found
  | Connection Factory instantiated
  | Destination instantiated
  | Connection instantiated
  | Session instantiated
  | Sender instantiated
  | Receiver instantiated
  | Message instantiated
  | Message Property 'Player' set to 'one'
  | Connection Started
  | Message Sent
  | Message Received: Success
  | SetUp Done.
  | Press any key to continue . . .Screen Print HTTPType = HTTP
  | Calling InitialContext
  | Naming Exception
  | javax.naming.NamingException: Failed to retrieve Naming interface [Root 
exception is java.io.FileNot
  | FoundException: http://localHost:80/invoker/JMXInvokerServlet]
  |         at 
org.jboss.naming.HttpNamingContextFactory.getInitialContext(HttpNamingContextFactory.java
  | :69)
  |         at 
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
  |         at 
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
  |         at javax.naming.InitialContext.init(InitialContext.java:223)
  |         at javax.naming.InitialContext.<init>(InitialContext.java:197)
  |         at MessageTest.setUp(MessageTest.java:58)
  |         at MessageTest.main(MessageTest.java:29)
  | Caused by: java.io.FileNotFoundException: 
http://localHost:80/invoker/JMXInvokerServlet
  |         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method)
  |         at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:
  | 39)
  |         at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorIm
  | pl.java:27)
  |         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
  |         at 
sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1186)
  |         at java.security.AccessController.doPrivileged(Native Method)
  |         at 
sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:11
  | 80)
  |         at 
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:877)
  |         at 
org.jboss.naming.HttpNamingContextFactory.getNamingServer(HttpNamingContextFactory.java:1
  | 18)
  |         at 
org.jboss.naming.HttpNamingContextFactory.getInitialContext(HttpNamingContextFactory.java
  | :65)
  |         ... 6 more
  | Caused by: java.io.FileNotFoundException: 
http://localHost:80/invoker/JMXInvokerServlet
  |         at 
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1131)
  |         at 
sun.net.www.protocol.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:1850)
  |         at java.net.URLConnection.getHeaderFieldInt(URLConnection.java:573)
  |         at java.net.URLConnection.getContentLength(URLConnection.java:468)
  |         at 
org.jboss.naming.HttpNamingContextFactory.getNamingServer(HttpNamingContextFactory.java:1
  | 13)
  |         ... 7 more
  | SetUp Done.
  | Press any key to continue . . .



View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3870869#3870869

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3870869


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
JBoss-user mailing list
JBoss-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to