互联网服务

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);
失败

控制台错误代码
严重: 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

7同行回答

k0521klbk0521klb系统架构师蓝凌
问题已经解决,是我jar 中缺少了 类显示全部
问题已经解决,是我jar 中缺少了 类收起
互联网服务 · 2014-09-01
浏览872
k0521klbk0521klb系统架构师蓝凌
我也遇到这个错误,解决了没 ?显示全部
我也遇到这个错误,解决了没 ?收起
互联网服务 · 2014-09-01
浏览866
bpel4wsbpel4ws联盟成员软件开发工程师新聚思(北京)有限公司
18.java.lang.NoClassDefFoundError: javax/resource/ResourceException19.com.cn.biz.SeendLogin.sm(SeendLogin.java:27)20.com.cn.biz.TestBiz.Testa(TestBiz.java:7)21.com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:48)22.org.apache.struts...显示全部
18.java.lang.NoClassDefFoundError: javax/resource/ResourceException

19.com.cn.biz.SeendLogin.sm(SeendLogin.java:27)

20.com.cn.biz.TestBiz.Testa(TestBiz.java:7)

21.com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:48)

22.org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)

23.org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)

24.org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)

25.org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)

26.org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)

27.org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)

28.org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)

29.org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)

30.org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)

31.javax.servlet.http.HttpServlet.service(HttpServlet.java:690)

32.javax.servlet.http.HttpServlet.service(HttpServlet.java:803)收起
政府机关 · 2012-02-20
浏览874
molichengzhanmolichengzhan软件开发工程师啦啦啦啦啦
web 项目,如果已经集成,必须将web项目发布、运行才能测试。不能在业务层进行main方法、单元测试等。只针 ...wscbody 发表于 2012-2-20 11:17     就是部署到tomcat上运行,访问该action报错,我这建了2个项目,一个是struts2.X一个是struts1.X的,皆报同样的错误我在调...显示全部
web 项目,如果已经集成,必须将web项目发布、运行才能测试。不能在业务层进行main方法、单元测试等。只针 ...
wscbody 发表于 2012-2-20 11:17



    就是部署到tomcat上运行,访问该action报错,我这建了2个项目,一个是struts2.X一个是struts1.X的,皆报同样的错误
我在调试的时候发现是在MQEnvironment.hostname = hostname;这句就开始报错的


呃,刚到这,我记不太清楚是那句报错,去调试了下原来的代码,结果运行成功,我不知道该怎么说了收起
互联网服务 · 2012-02-20
浏览847
heming1990heming1990软件开发工程师北京雅普兰科技发展有限公司
java.lang.NoClassDefFoundError: javax/resource/ResourceException显示全部
java.lang.NoClassDefFoundError: javax/resource/ResourceException收起
互联网服务 · 2012-02-20
浏览872
wscbodywscbody软件开发工程师暂无
web 项目,如果已经集成,必须将web项目发布、运行才能测试。不能在业务层进行main方法、单元测试等。只针对struts1如果是struts2,则可以用main方法及单元进行测试,但是也需要创建对象,并且进行应用上下文来实例化对象。...显示全部
web 项目,如果已经集成,必须将web项目发布、运行才能测试。不能在业务层进行main方法、单元测试等。只针对struts1
如果是struts2,则可以用main方法及单元进行测试,但是也需要创建对象,并且进行应用上下文来实例化对象。收起
互联网服务 · 2012-02-20
浏览918
molichengzhanmolichengzhan软件开发工程师啦啦啦啦啦
:(求高手帮忙呀,谢谢显示全部
:(求高手帮忙呀,谢谢收起
互联网服务 · 2012-02-20
浏览907

提问者

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

问题状态

  • 发布时间:2012-02-20
  • 关注会员:1 人
  • 问题浏览:6231
  • 最近回答:2014-09-01
  • X社区推广