2017-06-18 46 views
0

我正在编写一个基于模块的应用程序,因此它将其他jar文件加载到类路径中。这个应用程序的一个模块是一个RestAPI。对于RestAPI,我使用Spark Java。现在我的问题是,一个类不能被加载。 例外看起来如下:Spark Java ClassNotFound

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

我居然阴影类到我罐子。

我还尝试过:

我试图通过Class#forName手动加载它。这确实没有抛出异常。我尝试使用URLClassLoader加载整个jar文件。没有工作。

感谢所有帮助

+0

依赖管理系统(如果有的话),你使用的是哪个? –

+0

我实际上使用maven,依赖管理似乎绝对正常。我已经对我自己的jar文件进行了反编译,并且所有内容都是必须的。 –

回答

0

下载这个包从波纹管链接: -

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

或者

如果您使用的是依赖管理(Maven的,SBT,常青藤,摇篮等)复制并粘贴相应的依赖项。如果您正在使用依赖关系管理器,那么解决此异常就完全可以解决。

+0

谢谢你的回答,但我真的知道如何使用maven。但问题实际上可能是类加载器,因为我开发了一个模块化应用程序。 –

0

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

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

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

0

我已经看到了类似的问题,但我解决了以下相关

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