这是代码,发现老是出错,不知道怎么回事啊(系统用的是window XP ,MQ的版本是WebSphere MQ V6.0的)package transfer;import com.ibm.mq.MQC;
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;public class SendMSG1 {/**
* @param args
*/private MQQueueManager qMgr;// 定义一个队列管理器public static void main(String[] args) {
// TODO Auto-generated method stub
new SendMSG1();
}public SendMSG1() {
// TODO Auto-generated constructor stub
MQEnvironment.hostname="192.168.1.66"; //本地IP
MQEnvironment.channel="QM_ORANGE.QM_APPLE"; //用来通信的通道
MQEnvironment.CCSID=1381;
try{
qMgr=new MQQueueManager("QM_ORANGE");//队列管理器名称
int openOptions=MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_OUTPUT|MQC.MQOO_INQUIRE;
MQQueue queue=qMgr.accessQueue("Q2", openOptions);
MQMessage hello=new MQMessage(); //要写入队列的消息
try{
hello.format=MQC.MQFMT_STRING;
hello.characterSet=1381;
hello.writeString("asdfasdfasdfasdf");
}catch(java.io.IOException ex){}
finally{}
MQPutMessageOptions pmo=new MQPutMessageOptions();
for(int i=1;i <=5;i++){ //将消息依次写入队列
hello.expiry=-1;//设置消息用不过期
queue.put(hello);//将消息放入队列
}
queue.close();//关闭队列
qMgr.disconnect();//断开连接
}catch(Exception ex){}
finally{}
}}这就是那个错误,不知道,为什么老是出这个错误。
Exception in thread "main" java.lang.NoClassDefFoundError: javax/resource/ResourceException
at com.ibm.mq.MQEnvironment. <clinit>(MQEnvironment.java:441)
at transfer.SendMSG1. <init>(SendMSG1.java:25)
at transfer.SendMSG1.main(SendMSG1.java:20)
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;public class SendMSG1 {/**
* @param args
*/private MQQueueManager qMgr;// 定义一个队列管理器public static void main(String[] args) {
// TODO Auto-generated method stub
new SendMSG1();
}public SendMSG1() {
// TODO Auto-generated constructor stub
MQEnvironment.hostname="192.168.1.66"; //本地IP
MQEnvironment.channel="QM_ORANGE.QM_APPLE"; //用来通信的通道
MQEnvironment.CCSID=1381;
try{
qMgr=new MQQueueManager("QM_ORANGE");//队列管理器名称
int openOptions=MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_OUTPUT|MQC.MQOO_INQUIRE;
MQQueue queue=qMgr.accessQueue("Q2", openOptions);
MQMessage hello=new MQMessage(); //要写入队列的消息
try{
hello.format=MQC.MQFMT_STRING;
hello.characterSet=1381;
hello.writeString("asdfasdfasdfasdf");
}catch(java.io.IOException ex){}
finally{}
MQPutMessageOptions pmo=new MQPutMessageOptions();
for(int i=1;i <=5;i++){ //将消息依次写入队列
hello.expiry=-1;//设置消息用不过期
queue.put(hello);//将消息放入队列
}
queue.close();//关闭队列
qMgr.disconnect();//断开连接
}catch(Exception ex){}
finally{}
}}这就是那个错误,不知道,为什么老是出这个错误。
Exception in thread "main" java.lang.NoClassDefFoundError: javax/resource/ResourceException
at com.ibm.mq.MQEnvironment. <clinit>(MQEnvironment.java:441)
at transfer.SendMSG1. <init>(SendMSG1.java:25)
at transfer.SendMSG1.main(SendMSG1.java:20)
一楼的解释是对的
connector.jar在%MQMDIR%\Java\Lib路径中,其中%MQMDIR%为MQSeries安装目录。
这条在官网上说了http://www-01.ibm.com/support/docview.wss?uid=csc148256d65004dc82448256d6500427c182,JDK的原因,你用的是WebSphere6.0里的JDK,切换到SUN的JDK就正常了。
所以,如果你需要使用IBM的JDK的话,那么要把MQ的这几个包覆盖到IBM JDK的相关路径下。
这种错误多半是jre的问题,或者环境变量没有配置正确。