I would sure apprecitate someone running the code below and giving me a hint as 
to why I am getting the error I do.

Getting started 4.0 and everything else I found says it is easy to send JMS 
messages over HTTP, but I cannot.

The code is a client that cycles through 2 attempts to send and retreive a 
message from queue/A [which comes with the default server].

Please see ScreenPrint Output beneath code.
1.  Regular JMS.  Works great. 
2.  Over HTTP.    Fails miserably.import java.lang.reflect.Method;
  | import java.util.Hashtable;
  | 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 ();
  |     for (int i = REG; i <= HTTP; i++) {
  |       mb.doMessage (i);
  |     }
  |   }
  | 
  |   // method
  |   public void doMessage (int type) {
  |     System.out.println ("\n\nType = " + TYPE [type]);
  |     try {
  |       // get initial context
  |       Hashtable<String, String> env= new Hashtable<String, String> ();
  |       switch (type) {
  |         case REG:
  |           env.put(Context.INITIAL_CONTEXT_FACTORY,
  |                 "org.jnp.interfaces.NamingContextFactory");
  |           env.put(Context.PROVIDER_URL,
  |                 "jnp://localhost:1099");
  |           env.put(Context.URL_PKG_PREFIXES,
  |                 "org.jnp.interfaces");
  |           break;
  |         case HTTP:
  |           env.put(Context.INITIAL_CONTEXT_FACTORY,
  |                 "org.jboss.naming.HttpNamingContextFactory");
  |           env.put(Context.PROVIDER_URL,
  |                 "http://localHost:1099/invoker/JMXInvokerServlet";);
  |           env.put(javax.naming.Context.URL_PKG_PREFIXES,
  |             "org.jboss.naming:org.jnp.interfaces");
  |           break;
  |       }
  | 
  |       System.out.println ("Calling InitialContext");
  |       ctx = new InitialContext(env);
  |       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/A");
  |       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
  |       String m = "Success";
  |       message = session.createTextMessage(m);
  |       System.out.println ("Message instantiated w/ text = \"" + m + "\"");
  | 
  |       message.setStringProperty ("Player", "Great");
  |       System.out.println ("Message Property \"Player\" set to \"Great\"");
  | 
  |       // 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:");
  |       System.out.println ("Message text = \"" + message.getText () + "\"");
  |       System.out.println ("Message Property \"Player\" = \"" + 
message.getStringProperty ("Player")+ "\"");
  | 
  |     } 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("main () End:");
  |   }
  | 
  |   // members
  |   static final int REG  = 0;
  |   static final int HTTP = 1;
  |   static final String[] TYPE = {"Regular JMS Message", "JMS Message Over 
HTTP"};
  |   int type;
  |   Context ctx;
  |   Queue                  destination;
  |   QueueConnection        connection;
  |   QueueConnectionFactory factory;
  |   QueueReceiver          receiver;
  |   QueueSession           session;
  |   QueueSender            sender;
  |   TextMessage            message;
  | }Screen Print Output
  | 
  | Type = Regular JMS Message
  | Calling InitialContext
  | InitialContext Found
  | Connection Factory instantiated
  | Destination instantiated
  | Connection instantiated
  | Session instantiated
  | Sender instantiated
  | Receiver instantiated
  | Message instantiated w/ text = "Success"
  | Message Property "Player" set to "Great"
  | Connection Started
  | Message Sent:
  | Message Received:
  | Message text = "Success"
  | Message Property "Player" = "Great"
  | main () End:
  | 
  | 
  | Type = JMS Message Over HTTP
  | Calling InitialContext
  | Naming Exception
  | javax.naming.NamingException: Failed to retrieve Naming interface [Root 
exception is java.lang.Class
  | CastException: java.rmi.MarshalledObject]
  |         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.doMessage(MessageTest.java:53)
  |         at MessageTest.main(MessageTest.java:23)
  | Caused by: java.lang.ClassCastException: java.rmi.MarshalledObject
  |         at 
org.jboss.naming.HttpNamingContextFactory.getNamingServer(HttpNamingContextFactory.java:1
  | 20)
  |         at 
org.jboss.naming.HttpNamingContextFactory.getInitialContext(HttpNamingContextFactory.java
  | :65)
  |         ... 6 more
  | main () End:
  | Press any key to continue . . .
THNAX!




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

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


-------------------------------------------------------
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