【问题标题】:Spark Java ClassNotFoundSpark Java ClassNotFound
【发布时间】:2017-08-12 20:02:22
【问题描述】:

我正在编写一个基于模块的应用程序,因此它将其他 jar 文件加载到类路径中。该应用程序的一个模块是 RestAPI。对于 RestAPI,我使用的是 Spark Java。现在我的问题是,一个类无法加载。 异常如下所示:

org.pac4j.core.exception.TechnicalException: java.lang.ClassNotFoundException: org.pac4j.core.profile.CommonProfile

我实际上把这个类隐藏到了我的 jar 中。

我尝试过的:

我尝试通过 Class#forName 手动加载它。这实际上并没有引发异常。我尝试使用 URLClassLoader 加载整个 jar 文件。没有任何效果。

感谢您的帮助

【问题讨论】:

  • 您使用的是哪个依赖管理系统(如果有)?
  • 我其实用的是maven,依赖管理看起来绝对没问题。我已经反编译了我自己的 jar 文件,一切都在它必须在的地方。

标签: java module classloader spark-java urlclassloader


【解决方案1】:

从下面的链接下载这个包:-

http://central.maven.org/maven2/org/pac4j/pac4j-core/2.0.0/pac4j-core-2.0.0.jar

或者

如果您使用的是依赖项管理器(Maven、SBT、Ivy、Gradle 等),请复制并粘贴相应的依赖项。如果您使用的是依赖管理器,那么就可以解决此异常。

【讨论】:

  • 感谢您的回答,但我实际上知道如何使用 maven。但问题实际上可能是类加载器,因为我开发了一个模块化应用程序。
【解决方案2】:

如果您使用的是 maven 构建工具,请在 pom.xml 中添加以下依赖项属性。

<dependency>
    <groupId>org.pac4j</groupId>
    <artifactId>pac4j-core</artifactId>
    <version>1.4.0</version>
</dependency>

这将解决您的问题。如果您再次遇到同样的问题,请导航到 ~/.m2/repository/org/pac4j 目录删除所有下载的依赖项并重新构建您的项目。

【讨论】:

    【解决方案3】:

    我见过类似的问题,但我解决了以下依赖项

     <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
            </dependency>
    

    【讨论】:

      猜你喜欢
      • 2016-05-03
      • 1970-01-01
      • 2023-03-12
      • 2012-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多