【问题标题】:java.lang.NoClassDefFoundError: com/ibm/mq/MQException in Tomcatjava.lang.NoClassDefFoundError:Tomcat 中的 com/ibm/mq/MQException
【发布时间】:2013-10-04 04:15:22
【问题描述】:

我正在运行一个动态 Web 项目,但遇到来自 Tomcat 的以下错误:

Caused by: java.lang.NoClassDefFoundError: com/ibm/mq/MQException
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Unknown Source)
    at java.lang.Class.getDeclaredFields(Unknown Source)
    at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
    at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:261)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:140)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:67)
    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:405)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:881)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5269)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 6 more
Caused by: java.lang.ClassNotFoundException: com.ibm.mq.MQException
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    ... 20 more

我将 com.ibm.mq.jar 添加为外部 jar。有谁知道怎么回事?

【问题讨论】:

  • 您在哪里添加为外部 jar
  • 添加为外部 jar 将使该 jar 在编译时可用。一种方法是,将该 jar 复制到您的项目 lib 文件夹中。
  • @SotiriosDelimanolis 在项目属性的 Java 构建路径部分中。
  • @Nambari 哪个 lib 文件夹?

标签: java eclipse tomcat ibm-mq


【解决方案1】:

您需要将该 jar 标记为需要从项目的 Deployment Assembly 属性页面进行部署。默认情况下,只有 WEB-INF/lib 文件夹中的 jars 会被部署到服务器。

【讨论】:

    【解决方案2】:

    首先,您需要的不仅仅是 com.ibm.mq.jar 文件来连接到远程队列管理器。

    如果您使用的是 WMQ v6.0 或更低版本,那么您需要以下 MQ JAR 文件:

    • com.ibm.mq.jar
    • connector.jar

    如果您使用的是 WMQ v7.0、v7.1、v7.5 或更高版本,则需要以下 MQ JAR 文件:

    • com.ibm.mq.jar
    • connector.jar
    • com.ibm.mq.commonservices.jar
    • com.ibm.mq.headers.jar
    • com.ibm.mq.jmqi.jar

    如果您在应用程序中使用 JMS,那么您还需要:

    • com.ibm.mqjms.jar
    • jms.jar

    您在使用 MQ JNDI 吗?如果是这样,还要添加 jndi.jar 文件。

    这是标准 RTM,因为它有据可查。

    【讨论】:

      猜你喜欢
      • 2012-12-02
      • 1970-01-01
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      • 2017-05-30
      • 1970-01-01
      • 2016-10-06
      • 1970-01-01
      相关资源
      最近更新 更多