java.lang.NoClassDefFoundError: com.ibm.mq.MQQueueManager (ошибка инициализации) - PullRequest
0 голосов
/ 31 марта 2019

Я пытался отправить сообщение в IBM MQ с опцией режима привязки, но получаю

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

Я добавил нижеприведенные баночки и детали

  • MQ Версия: 8.0.0.7
  • По умолчанию: Да
  • Состояние: запущено
  • Банки (из каталога установки 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);

Ответы [ 3 ]

0 голосов
/ 01 апреля 2019

Это странно. Эта ошибка явно является ошибкой пути к классам, либо путь к вашему классу не указывает на файл режима привязки .jar, либо у вас его нет.

Если вы разрабатываете в Eclipse, IDE должна указывать вам на это. Java не должен компилироваться, но вы не видите ошибок IDE, что говорит о том, что IDE может найти соответствующий файл jar.

В этом случае я предполагаю, что вы не запускаете свое приложение из IDE, а упаковываете его и развертываете на MQ-сервере. Если он работает в режиме привязок, то он должен работать на сервере MQ.

Проверьте путь к классу и опцию -cp, чтобы убедиться, что файлы .jar, которые, по словам Eclipse, требуются вашему приложению, присутствуют в вашей среде выполнения.

0 голосов
/ 18 апреля 2019

После удаления банок, которые были добавлены в classpath JVM, он начал работать :)

Проблема была в том, что было несколько версий JARS, по этой причине он не работал

0 голосов
/ 31 марта 2019

Последнее «вызвано» говорит:

java.lang.ClassNotFoundException: javax.resource.ResourceException

, поэтому вам нужен JAR, содержащий хотя бы этот класс,например этот .

...