I am now working on Java Messenging Service with JBOSS . here is sample code which I developed using JBOSS .
TestConsume.java
-----------------------
import java.util.Properties;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.kony.ua.dto.*;
public class TestConsume implements MessageListener {
private static InitialContext ic=null;
private static QueueConnectionFactory qcFactory=null;
private static QueueConnection qc=null;
private static Destination dest=null;
private static QueueSession sess=null;
private static MessageConsumer consum=null;
public TestConsume()
{
Properties p=new Properties();
p.put(Context.PROVIDER_URL, "localhost:199");
p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
try {
if(ic==null)
ic=new InitialContext(p);
} catch (NamingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
if(qcFactory==null)
qcFactory=(QueueConnectionFactory)ic.lookup("java:/XAConnectionFactory");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(dest==null)
try {
dest=(Destination)ic.lookup("queue/DBQueue");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(qc==null)
{
try {
qc=qcFactory.createQueueConnection();
sess=qc.createQueueSession(false,Session.CLIENT_ACKNOWLEDGE);
consum=sess.createConsumer(dest);
consum.setMessageListener(this);
qc.start();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Override
public void onMessage(Message msg) {
// TODO Auto-generated method stub
System.out.println("<--------------------Reached Here In On Message----------------->");
try{
ObjectMessage dbmsg=(ObjectMessage)msg;
DBMessage msg_1=(DBMessage)dbmsg.getObject();
System.out.println(msg_1);
}catch(Exception e){e.printStackTrace();}
}
public static void main(String args[])
{
new TestConsume();
}
}
GenMessage.java
-----------------------
import java.util.Properties;
import javax.jms.JMSException;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class GenMessage {
private InitialContext ic=null;
private QueueConnectionFactory qcFactory=null;
private QueueConnection qc=null;
private QueueSender sender=null;
private Queue queue=null;
private QueueSession sess=null;
public GenMessage()
{
Properties p=new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
p.put(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces");
p.put(Context.PROVIDER_URL, "localhost:199");
try {
ic=new InitialContext(p);
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
qcFactory=(QueueConnectionFactory)ic.lookup("java:/XAConnectionFactory");
} catch (NamingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
qc=qcFactory.createQueueConnection();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
qc.start();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
sess=(QueueSession)qc.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
queue=(Queue)ic.lookup("queue/DBQueue");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
sender=sess.createSender(queue);
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DBMessage dbmsg=new DBMessage();
dbmsg.setClickaTellResponse("TEST");
dbmsg.setFinalStatus("TEST");
try {
ObjectMessage objMsg=sess.createObjectMessage(dbmsg);
objMsg.setJMSCorrelationID("MY OBJ");
sender.send(objMsg);
System.out.println("Message Has Been Sent "+dbmsg);
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String args[])
{
new GenMessage();
}
}
jbossmq-destinations-service.xml (under default /deploy/jms)
------------------------------------------
jboss.mq:service=DestinationManager
jboss.mq:service=SecurityManager
jboss.mq:service=DestinationManager
jboss.mq:service=SecurityManager
jboss.mq:service=DestinationManager
jboss.mq:service=SecurityManager
jboss.mq:service=DestinationManager
jboss.mq:service=SecurityManager
-1
jboss.mq:service=DestinationManager
jboss.mq:service=SecurityManager
-1
jboss.mq:service=DestinationManager
jboss.mq:service=DestinationManager
jboss.mq:service=DestinationManager
jboss.mq:service=DestinationManager
jboss.mq:service=DestinationManager
jboss-service.xml (under default/conf/jboss-service.xml)
--------------------
jboss.system:service=MainDeployer
jboss.system:service=ServiceDeployer
jboss.j2ee:service=EARDeployer
jboss.ejb:service=EJBDeployer
jboss.jca:service=RARDeployer
jboss.jca:service=ConnectionFactoryDeployer
jboss.web:service=WebServer
jboss.j2ee:service=ClientDeployer
jboss:service=Mail
jboss.mq:service=DestinationManager
jboss:service=Naming
jboss:service=TransactionManager
jboss:service=ClientUserTransaction
jboss:service=CorbaORB
JBoss System Threads
System Threads
60000
100
100000
run
resource:jboss-log4j.xml
true
60
java.rmi.server.RMIClassLoaderSpi
org.jboss.system.JBossRMIClassLoader
${jboss.bind.address}
8083
${java.rmi.server.hostname}
true
false
jboss.system:service=ThreadPool
false
199
${jboss.bind.address}
1098
${jboss.bind.address}
jboss.system:service=ThreadPool
jboss:service=NamingBeanImpl
jboss:service=HAJNDI
jboss.security:service=XMLLoginConfig
login-config.xml
true
org.jboss.security.plugins.JaasSecurityManager
anonymous
1800
60
false
300
${jboss.server.data.dir}/tx-object-store
jboss:service=invoker,type=jrmp
jboss:service=ClientUserTransaction
UserTransactionSessionFactory
org.jboss.tm.usertx.interfaces.UserTransactionSessionFactory
org.jboss.proxy.ClientMethodInterceptor
org.jboss.invocation.InvokerInterceptor
jboss:service=invoker,type=jrmp
jboss:service=invoker,type=jrmp
jboss:service=ClientUserTransaction
org.jboss.tm.usertx.interfaces.UserTransactionSession
org.jboss.proxy.ClientMethodInterceptor
org.jboss.invocation.InvokerInterceptor
jboss:service=invoker,type=jrmp
jboss:service=TransactionManager
jboss.remoting:service=Connector,transport=socket
4444
${jboss.bind.address}
jboss:service=TransactionManager
jboss:service=TransactionManager
1
300
300
60000
${jboss.bind.address}
4445
${jboss.bind.address}
0
1
false
jboss:service=TransactionManager
invocation
org.jboss.invocation.unified.marshall.InvocationMarshaller
org.jboss.invocation.unified.marshall.InvocationUnMarshaller
600000
${jboss.bind.address}
4446
true
jboss:service=invoker,type=unified
jboss.remoting:service=NetworkRegistry
jboss.system:service=MainDeployer
org.jboss.deployment.DeploymentSorter
#,%,\,,.,_$
#,$,%,~,\,v,.BAK,.bak,.old,.orig,.tmp,.rej,.sh
.make.state,.nse_depinfo,CVS,CVS.admin,RCS,RCSLOG,SCCS,TAGS,core,tags
5000
true
deploy/
True
|
Comments