簡體   English   中英

java.lang.NoClassDefFoundError:com.ibm.mq.MQQueueManager(初始化失敗)

[英]java.lang.NoClassDefFoundError: com.ibm.mq.MQQueueManager (initialization failure)

我試圖用綁定模式選項將消息發送到IBM MQ,但是獲取

java.lang.NoClassDefFoundError: com.ibm.mq.MQQueueManager (initialization failure) error.

我添加了以下罐子和細節

  • MQ版本:8.0.0.7
  • 默認值:是
  • 狀態:正在運行
  • Jars(來自MQ安裝目錄):

    1. com.ibm.mq.allclient-8.0.0.11.jar
    2. com.ibm.mq.commonservices.jar

我在這里錯過了嗎?

ServletWrappe E com.ibm.ws.webcontainer.servlet.ServletWrapper service Uncaught service() exception thrown by servlet action: java.lang.NoClassDefFoundError: com.ibm.mq.MQQueueManager (initialization failure)
        at java.lang.J9VMInternals.initialize(J9VMInternals.java:175)
        at com.bus.retail.service.invoker.nativemq.MsgReqRes.createConnectionFactory(MsgReqRes.java:32)
        at com.bus.retail.web.CustomRequestProcessor.process(CustomRequestProcessor.java:57)
        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:575)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1233)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:782)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:481)
        at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
        at com.bus.retail.web.ParamWrapperFilter.doFilter(ParamWrapperFilter.java:81)
        at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
        at com.bus.retail.web.flow.FlowFactory.doFilter(FlowFactory.java:110)
        at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
        at com.bus.retail.web.RootRequestFilter.doFilter(RootRequestFilter.java:137)
        at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)
        at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:4047)
        at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
        at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1016)
        at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817)
        at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:213)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:287)
        at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
        at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
        at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
        at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
        at com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205)
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892)
Caused by: java.lang.NoClassDefFoundError: javax.resource.ResourceException
        at java.lang.J9VMInternals.verifyImpl(Native Method)
        at java.lang.J9VMInternals.verify(J9VMInternals.java:94)
        at java.lang.J9VMInternals.initialize(J9VMInternals.java:169)
        at com.ibm.mq.MQQueueManager.<clinit>(MQQueueManager.java:164)
        at java.lang.J9VMInternals.initializeImpl(Native Method)
        at java.lang.J9VMInternals.initialize(J9VMInternals.java:235)
        at com.bus.retail.service.invoker.nativemq.MsgReqRes.createConnectionFactory(MsgReqRes.java:32)
        at com.bus.retail.web.CustomRequestProcessor.process(CustomRequestProcessor.java:57)
        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:575)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1233)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:782)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:481)
        at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
        at com.bus.retail.web.ParamWrapperFilter.doFilter(ParamWrapperFilter.java:81)
        at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
        at com.bus.retail.web.flow.FlowFactory.doFilter(FlowFactory.java:110)
        at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
        at com.bus.retail.web.RootRequestFilter.doFilter(RootRequestFilter.java:137)
        at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)
        at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:4047)
        at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
        at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1016)
        at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817)
        at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:213)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316)
        at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88)
        at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
        at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
        at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
        at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
        at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
        at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
        at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
        ... 1 more
Caused by: java.lang.ClassNotFoundException: javax.resource.ResourceException
        at java.net.URLClassLoader.findClass(URLClassLoader.java:602)
        at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:777)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:750)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:341)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:731)
        ... 46 more

下面是代碼片段,我在起始行中遇到錯誤。

            MQQueueManager qMgr = new MQQueueManager(""); 
            int openOptions = MQConstants.MQOO_INPUT_AS_Q_DEF;           
            MQQueue reqQueue = qMgr.accessQueue(reqQ, openOptions);          
            MQQueue resQueue = qMgr.accessQueue(repQ, openOptions);

最后一個“由...引起”說

java.lang.ClassNotFoundException:javax.resource.ResourceException

所以你需要一個至少包含這個類的JAR,例如這個

這很奇怪。 該錯誤顯然是一個類路徑錯誤,要么您的類路徑沒有指向綁定模式.jar文件,要么您沒有它。

如果您正在使用eclipse進行開發,那么IDE應該指出這一點。 java不應該編譯,但是您沒有看到IDE錯誤表明IDE可以找到相應的jar文件。

在這種情況下,我猜你不是從IDE啟動你的應用程序,而是將它打包並部署在MQ服務器上。 如果它以綁定模式運行,那么它必須在MQ服務器上運行。

檢查類路徑和-cp選項,以確保應用程序所需的Eclipse所說的.jar文件存在於運行時環境中。

刪除在JVM類路徑中添加的jar后,它開始工作:)

問題是,有多個版本的JARS,這就是它不起作用的原因

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM