Error while sending JMS(message) with jboss AS 7 (7.1.0)
chandrasachin16 May 9, 2013 4:35 AMHi Community,
I am in the process of migrating my old application on Jboss 5 to Jboss 7 (7.1.0). I am using JMS to send message on topic which I have configured in Jboss standalone-full.xml.
I am using the following code to create context where host is localhost and port is 4447 and user1 and user123 are application users which I have created in jboss.
private void sendJmsEvent() {
String factoryName = "jms/RemoteConnectionFactory";
String topicName = "jms/topic/xMESTopicSystemEventMsg";
InitialContext context=getInitialContext("localhost","4447");
TopicConnectionFactory factory = (TopicConnectionFactory) context.lookup(factoryName);
Topic topic = (Topic) context.lookup(topicName);
context.close();
// Create JMS objects
TopicConnection connection = factory.createTopicConnection("user1","user123");
TopicSession topicSession = connection.createTopicSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE);
TopicPublisher publisher = topicSession.createPublisher(topic);
// Send messages
System.out.println("Enter message to send or 'quit' to quit");
String messageText = "stop";
TextMessage message = topicSession.createTextMessage(messageText);
publisher.publish(message);
}
public static InitialContext getInitialContext(String host, String port) throws Exception {
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
props.put(Context.PROVIDER_URL, "remote://"+host+":"+port);
props.put(Context.SECURITY_PRINCIPAL, "user1");
props.put(Context.SECURITY_CREDENTIALS, "user123");
props.put(Context.URL_PKG_PREFIXES,"org.jboss.ejb.client.naming");
props.put("jboss.naming.client.ejb.context", true);
InitialContext initialContext = new InitialContext(props);
return initialContext ;
}
This code is a part of my application deployed in jboss(in the same JVM) but I get following error----------------
javax.naming.NamingException: Failed to create remoting connection [Root exception is java.lang.RuntimeException: Failed to setup EJB remote context]
at org.jboss.naming.remote.client.ClientUtil.namingException(ClientUtil.java:36)
at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:117)
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.init(Unknown Source)
at javax.naming.InitialContext.<init>(Unknown Source)
at com.test.TestServlet.getInitialContext(TestServlet.java:107)
at com.test.TestServlet.sendJmsEvent(TestServlet.java:65)
at com.test.TestServlet.doGet(TestServlet.java:49)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:154)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: Failed to setup EJB remote context
at org.jboss.naming.remote.client.InitialContextFactory.setupEjbContext(InitialContextFactory.java:352)
at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:111)
... 22 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jboss.naming.remote.client.InitialContextFactory.setupEjbContext(InitialContextFactory.java:340)
... 23 more
Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/jboss/modules/ModuleClassLoader) previously initiated loading for a different type with name "org/jboss/remoting3/Connection"
at org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver.<init>(RemotingConnectionEJBReceiver.java:99)
at org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver.<init>(RemotingConnectionEJBReceiver.java:88)
at org.jboss.ejb.client.EJBClientContext.registerConnection(EJBClientContext.java:340)
at org.jboss.naming.remote.client.ejb.EjbClientContextSelector.<init>(EjbClientContextSelector.java:24)
at org.jboss.naming.remote.client.ejb.EjbClientContextSelector.setupSelector(EjbClientContextSelector.java:14)
... 28 more
Can anybody please tell me why this error is occuring?
Regards
Sachin