JMS配置文檔
附件:http://m.tkk7.com/Files/86mang/JMS.doc
1.
登錄WebLogic控制臺(tái)
2.
新建JMS Server

3.
點(diǎn)擊“new”按鈕

4.
Name改為IbosJMSServer,點(diǎn)擊Create a New Store按鈕

5.
選中File Store,點(diǎn)擊“Next”

6.
Name改為IbosFileStore,點(diǎn)擊“OK”。返回到以下頁(yè)面

7.
選中IbosFileStore,點(diǎn)擊“Next”

8.
選中程序所在的Server,點(diǎn)擊“Finish”完成。
9.
新建JMS Modules

10.
點(diǎn)擊“New”

11.
Name改為IbosSystemModule,點(diǎn)擊“Next”

12.
選中程序所在Server,點(diǎn)擊“Next”

13.
點(diǎn)擊“Finish”完成。

14.
新建QueueConnectionFactory,點(diǎn)擊IbosSystemModules

15.
點(diǎn)擊“New”

16.
選中“Connection
Factory”,點(diǎn)擊“Next”

17.
Name改為IbosQueueConnectionFactory,JNDI Name設(shè)為IbosQueueConnectionFactory,點(diǎn)擊“Next”

18.
點(diǎn)擊“Advanced Targeting”按鈕

19.
點(diǎn)擊“Create a New Subdeployment”

20.
Subdeployment Name改為IbosSubdeployment,點(diǎn)擊“Next“

21.
選中IbosJMSServer,點(diǎn)擊“Finish”

22.
Subdeployment選中IbosSubdeployment,點(diǎn)擊“Finish”。

23.
新建Queue,點(diǎn)擊“New”

24.
選中“Queue”,點(diǎn)擊“Next”

25.
Name改為“IbosQueue”,JNDI Name改為“IbosQueue”,點(diǎn)擊“Next”

26.
Subdeployment選中“IbosSubdeployment”,點(diǎn)擊“Finish”完成。
27.
重新啟動(dòng)weblogic服務(wù)。
代碼如下:
package ibos.control;
import java.util.List;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.EJB;
import javax.ejb.MessageDriven;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
import javax.jms.TextMessage;
import kernel.jpa.JpaUtil;
import kernel.jpa.NamedQueryParameter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@MessageDriven
(mappedName = "IbosQueue",
name = "TransferQueueListener",
activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
}
)
@TransactionAttribute(TransactionAttributeType.NEVER)
public class TransferQueueListener implements MessageListener {
public static Logger log = LoggerFactory.getLogger(TransferQueueListener.class);
public void onMessage(Message message) {
// TextMessage tmsg = (TextMessage) message;
ObjectMessage objMsg = (ObjectMessage) message;

} catch (JMSException e) {
log.error(e.getMessage());
e.printStackTrace();
}
}
}
package ibos.control;
import java.io.Serializable;
import java.util.Properties;
import java.util.concurrent.ConcurrentHashMap;
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.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class SendJmsUtil {
public static String Default_Queue_Name = "IbosQueue";
public static int Default_IIOP_PORT = 8080;
public static class QueueManagedObject {
QueueConnection conn;
QueueSession session;
Queue queue;
QueueSender sender;
public QueueManagedObject(QueueConnection conn, QueueSession session,
Queue queue, QueueSender sender) {
super();
this.conn = conn;
this.session = session;
this.queue = queue;
this.sender = sender;
}
}
public static ConcurrentHashMap<String, QueueManagedObject> queueManagedObjectMap = new ConcurrentHashMap<String, QueueManagedObject>();
public static void sendMessage(Serializable obj, String ip) throws Exception {
sendMessage(obj, ip, Default_IIOP_PORT, Default_Queue_Name);
}
public static void sendMessage(Serializable obj, String ip, int port,
String queueName) throws Exception {
QueueManagedObject queueManagedObject = getQueueManagedObject(ip, port,
queueName);
ObjectMessage msg = queueManagedObject.session.createObjectMessage(obj);
queueManagedObject.sender.send(msg);
// queueManagedObject.sender.close();
}
public static QueueManagedObject getQueueManagedObject(String ip, int port,
String queueName) throws Exception {
String key = ip + port+queueName
;
QueueManagedObject queueManagedObject = queueManagedObjectMap.get(key);
if (queueManagedObject == null) {
QueueConnection conn;
QueueSession session;
Queue queue;
QueueSender sender;
Properties props = new Properties();
props.setProperty("java.naming.factory.initial","weblogic.jndi.WLInitialContextFactory");
String url = "t3://" + ip + ":" + port;
props.setProperty("java.naming.provider.url", url);
InitialContext ctx = new InitialContext(props);
QueueConnectionFactory qcf = (QueueConnectionFactory) ctx
.lookup("IbosQueueConnectionFactory");
conn = qcf.createQueueConnection();
session = conn.createQueueSession(false,
QueueSession.AUTO_ACKNOWLEDGE);
queue = (Queue) ctx.lookup(queueName);
sender = session.createSender(queue);
queueManagedObject = new QueueManagedObject(conn, session,
queue, sender);
queueManagedObjectMap.put(key, queueManagedObject);
}
return queueManagedObject;
}
}
附件:http://m.tkk7.com/Files/86mang/JMS.doc
posted on 2010-05-05 10:43
身在半空 閱讀(4214)
評(píng)論(0) 編輯 收藏