【问题标题】:NoClassDefFoundError in Jersey from a locally installed jar来自本地安装的 jar 的泽西岛的 NoClassDefFoundError
【发布时间】:2014-01-07 20:06:40
【问题描述】:

我需要在我的 Jersey 服务器端代码中使用私有 Jar 文件。我手动安装了依赖项并检查它是否确实存在,然后我添加了对其中一个 Jars 类的调用,该类已由 Netbeans 成功导入。但是,当尝试运行代码时,出现以下错误:

2014 年 1 月 7 日晚上 8:59:42 org.glassfish.jersey.server.ServerRuntime$Responder mapException 警告:WebApplicationException 原因: java.lang.NoClassDefFoundError: wrappers/ExtractFeaturesForGivenText

这是处理异常的代码:

try {
        ExtractFeaturesForGivenText.main(param);
    } catch (Exception ex) {
        Logger.getLogger(AnalysisController.class.getName()).
                log(Level.SEVERE, null, ex);
    }

以及 POM 文件中的条目:

<dependency>
        <groupId>featureExtractor</groupId>
        <artifactId>featureExtractor</artifactId>
        <version>0.8</version>
        <scope>provided</scope>
    </dependency>

有什么想法吗?

【问题讨论】:

  • 问题很可能出在泽西岛一方。你把它抱怨的 JAR 放在哪里?
  • 由于找不到定义,你可能找错地方了。
  • jar 文件由 Netbeans 安装到 m2 文件夹,然后包含(由 Netbeans 也是如此)。我在查看 Dependencies 文件夹时也可以看到它,当从我的代码中调用它时,问题仅在运行时开始。

标签: java maven glassfish dependencies jersey


【解决方案1】:
<dependency>
    <groupId>featureExtractor</groupId>
    <artifactId>featureExtractor</artifactId>
    <version>0.8</version>
    <scope>provided</scope>
</dependency>

由于您的依赖项具有provided 范围,因此该依赖项应该由容器提供(在您的情况下为 Glassfish)。

因此,要么将 featureExtractor jar 放在 Glassfish 上,要么删除依赖项的范围以将其(依赖项)附加到您的应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 2011-10-14
    • 2015-01-05
    • 2011-08-02
    • 1970-01-01
    相关资源
    最近更新 更多