Java使用MQ报错。。。。。

erif1001 2010-09-18 04:02:59
package ser;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileFilter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringWriter;
import java.io.FileInputStream;

import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQQueueManager;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQException;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQC;

public class PutDocumentServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int count = 0;
try {
// 取出需要放入传输的公文数据
StringWriter sw = new StringWriter();
File oa_dt = new File("D:\\Temp\\ZFile\\dt_oa");
File[] xmls = oa_dt.listFiles(new FileFilter() {
public boolean accept(File pathname) {
return pathname.getName().endsWith(".xml");
}
});
//=============MQ部分=============
// 建立MQ客户端调用上下文环境
MQEnvironment.hostname = "10.0.0.21";// 公文传输服务器ip地址
MQEnvironment.port = 1414;// 公文传输服务器MQ服务端口
MQEnvironment.CCSID = 1381;// 公文传输服务器MQ服务使用的编码
MQEnvironment.channel = "DT_SERVER_CHL";// 服务器连接通道名
MQEnvironment.userID = "mqm";// MQ服务用户名
// 连接队列管理器
MQQueueManager qMgr = new MQQueueManager("S_QM");
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT;
// 打开MQ队列
MQQueue q = qMgr.accessQueue("LOCAL_INBOX", openOptions);
for (int i = 0; i < xmls.length; i++) {
FileInputStream fins = new FileInputStream(xmls[i]);
byte[] data = new byte[fins.available()];
fins.read(data);
fins.close();
MQMessage msg = new MQMessage();
msg.write(data);
// 放入消息
q.put(msg);
count++;
}
// 关闭队列
q.close();
// 关闭队列管理器
qMgr.disconnect();
//=============MQ部分=============
} catch (MQException e) {
e.printStackTrace();

}
catch (Exception e) {
e.printStackTrace();
}
System.out.println(String.valueOf(count));
request.setAttribute("result", "Receive successful!");
request.getRequestDispatcher("login.jsp").forward(request,response);
}
}
去掉MQEnvironment相关的代码,是可以执行到最后的request.getRequestDispatcher("login.jsp").forward(request,response);跳转。
只要有“=============MQ部分=============”间的代码就报错,就留一句MQEnvironment.hostname = "10.0.0.21"; 也报错:


HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet execution threw an exception


root cause

java.lang.NoClassDefFoundError: javax/resource/ResourceException
com.ibm.mq.MQEnvironment.<clinit>(MQEnvironment.java:242)
ser.PutDocumentServlet.doGet(PutDocumentServlet.java:37)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.0.28

...全文
158 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
erif1001 2010-09-24
  • 打赏
  • 举报
回复
结贴。。。
erif1001 2010-09-18
  • 打赏
  • 举报
回复
少了个connector的jar包
erif1001 2010-09-18
  • 打赏
  • 举报
回复
就一句:MQEnvironment.hostname = "10.0.0.21";
就报错,是缺少什么吗?????

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧