java tomcat ibm mq谁有经验?
import java.util.Hashtable;
import com.ibm.mq.*;
public class mqComm{
private String qmName = " ";
private String qName = " ";
private com.ibm.mq.MQQueueManager qMgr = null
private Hashtable properties = new Hashtable();
public mqComm(String qmName, String qName) {
this.qmName = qmName;
this.qName = qName;
configEnviroment();
try {
qMgr = new MQQueueManager(qmName, properties);
} catch (MQException e) {
Loger.log.error( "Create MQQueueManager error!qmName=[ " + qmName + "]qName=[ " + qName + "] " + e);
}
}
public void configEnviroment() {
properties.put( "CCSID ", new Integer(1381));
}
public int putMsg(String buff) {
int openOptions = MQC.MQOO_OUTPUT|MQC.MQOO_FAIL_IF_QUIESCING;
try {
MQQueue queue = qMgr.accessQueue(qName,openOptions,null,null,null);
MQPutMessageOptions pmo = new MQPutMessageOptions();
pmo.options = pmo.options+MQC.MQGMO_SYNCPOINT;
MQMessage outmsg = new MQMessage();
outmsg.characterSet = 1381;
outmsg.format = MQC.MQFMT_STRING;
outmsg.writeString(buff);
queue.put(outmsg,pmo);
qMgr.commit();
System.out.println( "The message has been Successfully ");
queue.close();
qMgr.disconnect();
return 0;
} catch (MQException e) {
e.printStackTrace();
} catch (Exception ee){
Loger.log.error( "mq putMsg error! " + ee);
ee.printStackTrace();
}
return -1;
}
public String getMsg(int timeout)
{
int strLen = 0;
byte[] strData;
String msg = null;
int openOptions = MQC.MQOO_INPUT_SHARED|MQC.MQOO_FAIL_IF_QUIESCING;
try {
MQQueue queue = qMgr.accessQueue(qName,openOptions,null,null,null);
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options += MQC.MQGMO_SYNCPOINT;
gmo .options += MQC.MQGMO_WAIT;
gmo.options += MQC.MQGMO_FAIL_IF_QUIESCING;
gmo.waitInterval = timeout;
gmo.waitInterval = MQC.MQWI_UNLIMITED;
MQMessage inmsg = new MQMessage();
inmsg.format = MQC.MQFMT_STRING;
queue.get(inmsg,gmo);
strLen = inmsg.getMessageLength();
strData = new byte[strLen];
inmsg.readFully(strData,0,strLen);
msg=new String(strData);
qMgr.commit();
queue.close();
qMgr.disconnect();
return msg;
} catch (MQException e) {
e.printStackTrace();
} catch (Exception ee){
ee.printStackTrace();
}
return null;
}
public static void main(String[] args) {
mqComm mqtrans = new mqComm( "CIS ", " ", " ", " ");
try {
//mqtrans.putQueue( "this is for zheshang test ", "WEB2PH ");
System.out.println( "getFormTheQueue : "+ mqtrans.getMsg(-1));
} catch (Exception e) {
e.printStackTrace();
}
}
}
这是一个简单的封装操作MQ的程序,在我的WEB项目中,用tomcat进行测试,发现在后台程序中new 一个我的这个类都会不成功,而且是什么都不报错,什么提示信息都没有,但如果用java mqComm来执行程序是没有问题的。只有在WEB运行环境下就什么提示信息都没有,居然连new都会不成功?那为什么单独用java执行又没问题呢?谁有类似经验呢?
[解决办法]
这个是没有问题,不过 你在调用的时候方法可能有问题的啊,关键要看的不是这个是你的调用那里,
[解决办法]
mark,wait for leisure..