用过facade(session Ejb)调用mdb发送过sendMessage()方法的高手进来看看!!(问题解决就结贴)
各位大虾:
我现在想在facade sessionBean中调用其他的消息驱动bean,所以有一个发送消息的
sendMessage(),但是有错误啊
public void sendMessage(Order order) {
try{
QueueSender queueSender = null;
Context ctx=getInitialContext();
//执行到这里抛出异常
QueueConnectionFactory qConFactory =
(QueueConnectionFactory) ctx.lookup("weblogic.jms.ConnectionFactory");
Queue messageQueue = (Queue)ctx.lookup("bookstorequeue");
QueueConnection qCon=qConFactory.createQueueConnection();
QueueSession session = qCon.createQueueSession(false,Session.AUTO_ACKNOWLEDGE );
queueSender=session.createSender(messageQueue);
Message objMessage=session.createObjectMessage(order);
queueSender.send(objMessage);
if (queueSender != null) {
queueSender.close();
}
if(qCon!=null) {
qCon.close();
}
}catch(Exception e){e.printStackTrace();}
这个方法对吗?
private Context getInitialContext() throws Exception {
String url = "t3://localhost:7001";
String user = "system";
String password = "security";
Properties properties = null;
try {
properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, url);
if (user != null) {
properties.put(Context.SECURITY_PRINCIPAL, user);
properties.put(Context.SECURITY_CREDENTIALS, password == null ? "" : password);
}
return new InitialContext(properties);
}
catch(Exception e) {
System.out.println("Unable connect to Weblogic server at"+url);
throw e;
}
}
这是getInitialContext()方法,这个方法到底有何作用,
user和password必须是system和security吗?
先谢了!