读书人

java tomcat ibm mq哪位高手有经验

发布时间: 2012-01-11 22:28:46 作者: rapoo

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..

读书人网 >Java Web开发

热点推荐