2006-12-14
jboss4官方jms程序(Point-To-Point)
关键字: jmspackage com.rox;
import java.util.Properties;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueReceiver;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import EDU.oswego.cs.dl.util.concurrent.CountDown;
/**
* A complete JMS client example program that sends a
*
* TextMessage to a Queue and asynchronously receives the
*
* message from the same Queue.
*
*
* @author Scott.Stark@jboss.org
*
* @version $Revision:$
*
*/
* A complete JMS client example program that sends a
*
* TextMessage to a Queue and asynchronously receives the
*
* message from the same Queue.
*
*
* @author Scott.Stark@jboss.org
*
* @version $Revision:$
*
*/
public class SendRecvClient
{
static CountDown done = new CountDown(1);
QueueConnection conn;
QueueSession session;
Queue que;
public static class ExListener implements MessageListener
{
public void onMessage(Message msg)
{
done.release();
TextMessage tm = (TextMessage) msg;
try
{
System.out.println("onMessage, recv text="
+ tm.getText());
}
catch (Throwable t)
{
t.printStackTrace();
}
}
}
public void setupPTP()
throws JMSException, NamingException
{
Properties environment = new Properties();
environment.put(Context.PROVIDER_URL, "localhost:1099");
environment.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
InitialContext iniCtx = new InitialContext(environment);
Properties environment = new Properties();
environment.put(Context.PROVIDER_URL, "localhost:1099");
environment.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
InitialContext iniCtx = new InitialContext(environment);
Object tmp = iniCtx.lookup("ConnectionFactory");
QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
conn = qcf.createQueueConnection();
que = (Queue) iniCtx.lookup("queue/testQueue");
session = conn.createQueueSession(false,
QueueSession.AUTO_ACKNOWLEDGE);
conn.start();
}
public void sendRecvAsync(String text)
throws JMSException, NamingException
{
System.out.println("Begin sendRecvAsync");
// Setup the PTP connection, session
setupPTP();
// Set the async listener
QueueReceiver recv = session.createReceiver(que);
recv.setMessageListener(new ExListener());
// Send a text msg
QueueSender send = session.createSender(que);
TextMessage tm = session.createTextMessage(text);
send.send(tm);
System.out.println("sendRecvAsync, sent text="
+ tm.getText());
send.close();
System.out.println("End sendRecvAsync");
}
public void stop() throws JMSException {
conn.stop();
session.close();
conn.close();
}
public static void main(String args[]) throws Exception
{
SendRecvClient client = new SendRecvClient();
client.sendRecvAsync("A text msg");
client.done.acquire();
client.stop();
System.exit(0);
}
}
红色部分根据需要添加.如果修改默认配置可以查看{JBOSS_HOME}/server/..../deploy/jms下相应的配置文件.
红色部分根据需要添加.如果修改默认配置可以查看{JBOSS_HOME}/server/..../deploy/jms下相应的配置文件.
Scott.Stark说了: In the P2P model, a sender delivers messages to a queue and a single receiver pulls the message off of the queue. The receiver does not need to be listening to the queue at the time the message is sent.
在点对点模式中,接收端不需要在发送方发送的时候监听.
发表评论
最近加入圈子
最新评论
-
JSF selectOneMenu的问题
map.setValue(String.valueOf(a.getId())); ...
-- by dontsan -
table全选(jsf)
选是选中了,后台怎么获取呀?
-- by yourenyouyu2008 -
你被耍了(appfuse)
不懂appfuse,学习ing
-- by zyy200411 -
你被耍了(appfuse)
果然被你耍了
-- by sue0927 -
table全选(jsf)
还有使用这种方法在托管bean 怎样才能取到选中行的值。。。。
-- by yxlrock







评论排行榜