2,633
社区成员
发帖
与我相关
我的任务
分享
public class Tester
{
public static String icf = "com.sun.jndi.fscontext.RefFSContextFactory";
public static String url = "file:/C:/JNDI-Directory";
public static void main(String[] args) throws JMSException, NamingException
{
QueueSession session = null;
QueueConnection connection = null;
QueueConnectionFactory factory = null;
QueueSender queueSender = null;
QueueReceiver queueReceiver= null;
Queue oQueue = null; // 消息发送到的队列
Queue iQueue = null; // 接收消息的队列
try
{
JNDIUtil jndiUtil= new JNDIUtil(icf,url);
factory=jndiUtil.getQueueConnectionFactory("TestQM_QCF");
System.out.println(factory.toString());
connection = factory.createQueueConnection();//就是运行到这一句时就报了前面说的那个异常.
// 启动(或重新启动)入站消息的连接地址,如果没有这个调用消息不会被接收
connection.start();
//表示一个非相互操作会话
boolean transacted = false;
session = connection.createQueueSession( transacted, Session.AUTO_ACKNOWLEDGE);
oQueue= jndiUtil.getQueue("OutputTestQueue");
queueSender = session.createSender(oQueue);
TextMessage oMsg = session.createTextMessage();
oMsg.setText("www.devx.com");
// 你还可以设置其他消息属性
queueSender.send(oMsg);
iQueue= jndiUtil.getQueue("INQUENE");
queueReceiver = session.createReceiver(iQueue);
Message iMsg = queueReceiver.receive(1000);
if ( iMsg != null )
System.out.println( ((TextMessage)iMsg).getText() );
else
System.out.println( "No messages in queue " );
}
finally
{
//总是释放资源
if ( queueReceiver!= null )
queueReceiver.close();
if ( queueSender!= null )
queueSender.close();
if ( session!= null )
session.close();
if ( connection!= null )
{
connection.close();
}
}
}
}