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