互联网服务

WEB项目无法连接MQ

使用环境,JDK1.6,TOMCAT6 ,struts2使用中也是报下面的错误,所以我将JDK降至1.4,并使用struts1.3,依然报错,以下为JDK1.4,struts1.3搭建的在main方法中直接执行TestBiz t=new TestBiz(); t.Testa(2);成功action里面也是TestBiz t=new TestBiz(); t.Testa(2);失败控制台错误代码 严...显示全部
使用环境,JDK1.6,TOMCAT6 ,struts2使用中也是报下面的错误,所以我将JDK降至1.4,并使用struts1.3,依然报错,以下为JDK1.4,struts1.3搭建的


在main方法中直接执行
TestBiz t=new TestBiz();
t.Testa(2);
成功


action里面也是
TestBiz t=new TestBiz();
t.Testa(2);
失败

控制台错误代码
严重: Servlet.service() for servlet action threw exception
java.lang.ClassNotFoundException: javax.resource.ResourceException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at com.cn.biz.SeendLogin.sm(SeendLogin.java:27)
at com.cn.biz.TestBiz.Testa(TestBiz.java:7)
at com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:48)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
2012-2-20 10:39:17 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.ClassNotFoundException: javax.resource.ResourceException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at com.cn.biz.SeendLogin.sm(SeendLogin.java:27)
at com.cn.biz.TestBiz.Testa(TestBiz.java:7)
at com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:48)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)

页面错误代码
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.cn.biz.SeendLogin.sm(SeendLogin.java:27)
com.cn.biz.TestBiz.Testa(TestBiz.java:7)
com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:48)
org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause 

java.lang.ClassNotFoundException: javax.resource.ResourceException
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
com.cn.biz.SeendLogin.sm(SeendLogin.java:27)
com.cn.biz.TestBiz.Testa(TestBiz.java:7)
com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:48)
org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


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


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

Apache Tomcat/6.0.13

具体实现代码
package com.cn.biz;

import it.sauronsoftware.base64.Base64;

import com.cn.util.FromatGetMessage;
import com.ibm.mq.MQC;

import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQGetMessageOptions;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;


public class SeendLogin {
private static String hostname="192.168.1.124";
private static String channel="CONN";
private static int port=1414;
private static int CCSID=1381;
public static int sm(int id) {
int re = 0;
MQEnvironment.hostname = hostname;
MQEnvironment.channel = channel; // 通道
MQEnvironment.port = port; // 端口
MQEnvironment.CCSID = CCSID; // 字符集
try {
MQQueueManager qMgr = new MQQueueManager("MQ_hc"); // 队列管理器

int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT
| MQC.MQOO_INQUIRE;
MQQueue queue = qMgr.accessQueue("in", openOptions); // 队列名称
MQMessage retrieve = new MQMessage();

MQPutMessageOptions pmo = new MQPutMessageOptions();// 放入消息
MQGetMessageOptions gmo = new MQGetMessageOptions();// 读取消息

// String message=retrieve.readStringOfCharLength(32000).trim();
gmo.options = gmo.options + MQC.MQGMO_SYNCPOINT;// Get messages
// under sync point
// control(在同步点控制下获取消息)
gmo.options = gmo.options + MQC.MQGMO_WAIT; // Wait if no messages
// on the
// Queue(如果在队列上没有消息则等待)
gmo.options = gmo.options + MQC.MQGMO_FAIL_IF_QUIESCING;// Fail if
// Qeue
// Manager
// Quiescing(如果队列管理器停顿则失败)
gmo.waitInterval = 1000; // Sets the time limit for the
// wait.(设置等待的毫秒时间限制)

/* 发送消息 */
String seend = ""
+ id + "";
retrieve.writeString(seend);
queue.put(retrieve, pmo);
/* 发送消息 */

queue.close();
qMgr.disconnect();
System.out.println("成功发送消息:"+seend+"到mq队列");
re = 1;
} catch (Exception e) {
System.out.println("错误:" + e.getMessage());
re = 0;
}
return re;
}

public static String gm() {

MQEnvironment.hostname = hostname;
MQEnvironment.channel = channel; // 通道
MQEnvironment.port = port; // 端口
MQEnvironment.CCSID = CCSID; // 字符集
try {

MQQueueManager qMgr = new MQQueueManager("MQ_hc"); // 队列管理器

int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT
| MQC.MQOO_INQUIRE;
MQQueue queue = qMgr.accessQueue("out", openOptions); // 队列名称
MQMessage retrieve = new MQMessage();

MQPutMessageOptions pmo = new MQPutMessageOptions();// 放入消息
MQGetMessageOptions gmo = new MQGetMessageOptions();// 读取消息

// String message=retrieve.readStringOfCharLength(32000).trim();
gmo.options = gmo.options + MQC.MQGMO_SYNCPOINT;// Get messages
// under sync point
// control(在同步点控制下获取消息)
gmo.options = gmo.options + MQC.MQGMO_WAIT; // Wait if no messages
// on the
// Queue(如果在队列上没有消息则等待)
gmo.options = gmo.options + MQC.MQGMO_FAIL_IF_QUIESCING;// Fail if
// Qeue
// Manager
// Quiescing(如果队列管理器停顿则失败)
gmo.waitInterval = 1000; // Sets the time limit for the
// wait.(设置等待的毫秒时间限制)

/* 获取消息 */
queue.get(retrieve, gmo);
String message = retrieve.readLine();
System.out.println("获得加密消息为: " + message);


FromatGetMessage util=new FromatGetMessage();
message =util.FmatString(message);//格式化消息
System.out.println("解密获得消息为: " + Base64.decode(message, "UTF-8"));//解密消息
/* 获取消息 */

queue.close();
qMgr.disconnect();
} catch (Exception e) {
System.out.println("错误:" + e.getMessage());
}
return "获取成功";
}

}
如有高手能解决 ,感激不尽,我的QQ306955302,如果能直接联系我和我交流下也好,谢谢收起
参与8

查看其它 6 个回答molichengzhan的回答

molichengzhanmolichengzhan软件开发工程师啦啦啦啦啦
:(求高手帮忙呀,谢谢
互联网服务 · 2012-02-20
浏览925

回答者

molichengzhan
软件开发工程师啦啦啦啦啦
擅长领域: 中间件

molichengzhan 最近回答过的问题

回答状态

  • 发布时间:2012-02-20
  • 关注会员:1 人
  • 回答浏览:925
  • X社区推广