MQ發送消息到隊列的Java代碼
MQ發送消息到隊列
</div>
MsgSend.java
package com.mq.dpca.msg;
import javax.jms.JMSException;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import com.ibm.mq.jms.MQQueueConnectionFactory;
import com.ibm.msg.client.wmq.WMQConstants;
/**
* MQ字符串發送功能
*
*/
public class MsgSend {
MQQueueConnectionFactory mcf;
QueueConnection qconn;
MQConfig mc = null;
/**
* 初始化連接
*
* @throws JMSException
*/
public void openConnection() throws JMSException {
mc = MQConfig.getInstance();
mcf = new MQQueueConnectionFactory();
mcf.setConnectionNameList(mc.getMQ_HOST_NAME());
// mcf.setHostName(mc.getMQ_HOST_NAME());
mcf.setChannel(mc.getMQ_CHANNEL());
mcf.setTransportType(WMQConstants.WMQ_CM_CLIENT);
mcf.setClientReconnectOptions(WMQConstants.WMQ_CLIENT_RECONNECT);
// mcf.setPort(Integer.parseInt(mc.getMQ_PROT()));
mcf.setCCSID(Integer.parseInt(mc.getMQ_CCSID()));
mcf.setQueueManager(mc.getMQ_MANAGER());
qconn = mcf.createQueueConnection();
}
/**
* 發送消息
*
* @param key
* @param msgInfo
* @throws JMSException
* @throws InterruptedException
*/
public void send(String key, String msgInfo) {
QueueSession session = null;
QueueSender sender = null;
try {
openConnection();
session = qconn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue(mc.getMQ_QUEUE_NAME());
sender = session.createSender(queue);
TextMessage msg = session.createTextMessage();
msg.setText(msgInfo);
// msg.setStringProperty("Key", key);
sender.send(msg);
} catch (JMSException e) {
e.printStackTrace();
} finally {
try {
sender.close();
session.close();
qconn.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
/**
* 程序的入口
* @param args
* @throws JMSException
* @throws InterruptedException
*/
public static void main(String[] args) throws JMSException,
InterruptedException {
MsgSend ms = new MsgSend();
String str = "<root><esbHeader><requestId>d5d001f47d46e1471ae42ebf1dded7a2</requestId><serviceName>syncCustmoerInfo</serviceName>"
+ "<key>3DOxe6EfkvcAAAFH95SjNwAAAAAAAAAD</key></esbHeader><serviceNameReq><security><key>f7b17a6ffcd5561748c5bb98075aa432</key><date>2013-04-10 15:25:00</date></security>"
+ "<customer><khmc>測試客戶ES2B</khmc><fzxsid>120483321</fzxsid><khczqh>010</khczqh><khczfj>1234</khczfj><khcz>567892012</khcz>"
+ "</customer>"
+ "<customer><khmc>測試客戶ES2B</khmc><fzxsid>120483321</fzxsid><khczqh>010</khczqh><khczfj>1234</khczfj><khcz>567892012</khcz>"
+ "</customer>"
+ "<customer><khmc>測試客戶ES2B</khmc><fzxsid>120483321</fzxsid><khczqh>010</khczqh><khczfj>1234</khczfj><khcz>567892012</khcz>"
+ "</customer>" + "</serviceNameReq>" + "</root>";
ms.send("", str);
// Thread.sleep(10000);
System.out.print("消息發送完畢!");
}
}
MQConfig.java ~ 6KB
package com.mq.dpca.msg;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
import com.mq.dpca.util.RenameUtil;
/**
* MQ訪問配置文件各參數的獲取
*
*/
public class MQConfig {
// MQ配置及server配置文件路徑
private static final String ACTIONPATH = "config.properties";
private static MQConfig instance = null;
private String MQ_MANAGER = null;
private String MQ_HOST_NAME = null;
private String MQ_CHANNEL = null;
private String MQ_QUEUE_NAME = null;
private String MQ_PROT = null;
private String MQ_CCSID = null;
private String MQ_QUEUE_SUB = null;
private String FILE_DIR = null;
public String getFILE_DIR() {
return FILE_DIR;
}
public void setFILE_DIR(String fILE_DIR) {
FILE_DIR = fILE_DIR;
}
public String getMQ_MANAGER() {
return MQ_MANAGER;
}
public void setMQ_MANAGER(String mq_manager) {
MQ_MANAGER = mq_manager;
}
public String getMQ_HOST_NAME() {
return MQ_HOST_NAME;
}
public void setMQ_HOST_NAME(String mq_host_name) {
MQ_HOST_NAME = mq_host_name;
}
public String getMQ_CHANNEL() {
return MQ_CHANNEL;
}
public void setMQ_CHANNEL(String mq_channel) {
MQ_CHANNEL = mq_channel;
}
public String getMQ_QUEUE_NAME() {
return MQ_QUEUE_NAME;
}
public void setMQ_QUEUE_NAME(String mq_queue_name) {
MQ_QUEUE_NAME = mq_queue_name;
}
public String getMQ_PROT() {
return MQ_PROT;
}
public void setMQ_PROT(String mq_prot) {
MQ_PROT = mq_prot;
}
public String getMQ_CCSID() {
return MQ_CCSID;
}
public void setMQ_CCSID(String mq_ccsid) {
MQ_CCSID = mq_ccsid;
}
public static MQConfig getInstance() {
if (instance == null) {
instance = new MQConfig().getNewDbConfig();
}
return instance;
}
public static ResourceBundle getCFG(){
String cfgPath = "";
InputStream in = null;
ResourceBundle pathCfg = null;
ResourceBundle mqCfg = null;
pathCfg = PropertyResourceBundle.getBundle("config");
cfgPath = RenameUtil.getParameter(pathCfg, "mqcfgPath");
try {
in = new BufferedInputStream(new FileInputStream(cfgPath));
mqCfg = new PropertyResourceBundle(in);
return mqCfg;
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
return mqCfg;
}
public static MQConfig getNewDbConfig() {
MQConfig dc = new MQConfig();
Properties prop = new Properties();
String path = null;
InputStream fis = null;
try {
fis = MQConfig.class.getClassLoader().getResourceAsStream(
"config.properties");
// fis = new FileInputStream(new File(path + ACTIONPATH));
prop.load(fis);
dc.MQ_CCSID = prop.getProperty("MQ_CCSID");
dc.MQ_CHANNEL = prop.getProperty("MQ_CHANNEL");
dc.MQ_HOST_NAME = prop.getProperty("MQ_HOST_NAME");
dc.MQ_MANAGER = prop.getProperty("MQ_MANAGER");
dc.MQ_PROT = prop.getProperty("MQ_PROT");
dc.MQ_QUEUE_NAME = prop.getProperty("MQ_QUEUE_NAME");
dc.MQ_QUEUE_SUB = prop.getProperty("MQ_QUEUE_SUB");
dc.FILE_DIR = prop.getProperty("FILE_DIR");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return dc;
}
public static MQConfig MqConfig() {
MQConfig dc = new MQConfig();
ResourceBundle rb = getCFG();
try {
// fis = new FileInputStream(new File(path + ACTIONPATH));
dc.MQ_CCSID = RenameUtil.getParameter(rb,"MQ_CCSID");
dc.MQ_CHANNEL = RenameUtil.getParameter(rb,"MQ_CHANNEL");
dc.MQ_HOST_NAME = RenameUtil.getParameter(rb,"MQ_HOST_NAME");
dc.MQ_MANAGER = RenameUtil.getParameter(rb,"MQ_MANAGER");
dc.MQ_PROT = RenameUtil.getParameter(rb,"MQ_PROT");
dc.MQ_QUEUE_NAME = RenameUtil.getParameter(rb,"MQ_QUEUE_NAME");
dc.MQ_QUEUE_SUB = RenameUtil.getParameter(rb,"MQ_QUEUE_SUB");
dc.FILE_DIR = RenameUtil.getParameter(rb,"FILE_DIR");
} catch (Exception e) {
e.printStackTrace();
}
return dc;
}
public static MQConfig getNewDbConfigFromKey(String key) {
MQConfig dc = null;
Properties prop = new Properties();
String path = null;
InputStream fis = null;
try {
fis = MQConfig.class.getClassLoader().getResourceAsStream(
"config.properties");
// fis = new FileInputStream(new File(path + ACTIONPATH));
prop.load(fis);
dc = new MQConfig();
dc.MQ_MANAGER = prop.getProperty(key + "_MQ_MANAGER");
dc.MQ_CCSID = prop.getProperty(key + "_MQ_CCSID");
dc.MQ_CHANNEL = prop.getProperty(key + "_MQ_CHANNEL");
dc.MQ_HOST_NAME = prop.getProperty(key + "_MQ_HOST_NAME");
dc.MQ_PROT = prop.getProperty(key + "_MQ_PROT");
dc.MQ_QUEUE_NAME = prop.getProperty(key + "_MQ_QUEUE_NAME");
dc.MQ_QUEUE_SUB = prop.getProperty(key + "_MQ_QUEUE_SUB");
dc.FILE_DIR = prop.getProperty(key + "_FILE_DIR");
} catch (FileNotFoundException e) {
dc = null;
} catch (IOException e) {
dc = null;
}
return dc;
}
public static void main(String args[]) throws Exception {
MQConfig mc = MQConfig.getNewDbConfigFromKey("002");
System.out.println(mc);
}
public void setMQ_QUEUE_SUB(String mQ_QUEUE_SUB) {
MQ_QUEUE_SUB = mQ_QUEUE_SUB;
}
public String getMQ_QUEUE_SUB() {
return MQ_QUEUE_SUB;
}
public static String getValueByKey(String key) {
InputStream fis = null;
String value = null;
Properties prop = new Properties();
try {
fis = MQConfig.class.getClassLoader().getResourceAsStream(
"config.properties");
prop.load(fis);
value = prop.getProperty(key);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return value;
}
}
本文由用戶 hwl0420 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!