【问题标题】:java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils from BaseClassLoaderjava.lang.ClassNotFoundException:来自 BaseClassLoader 的 org.apache.commons.lang.StringUtils
【发布时间】:2013-07-20 20:15:12
【问题描述】:

我在运行以下代码时收到以下错误

java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils from BaseClassLoader

at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:448)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at org.dozer.util.ResourceLoader.getResource(ResourceLoader.java:53)
at org.dozer.util.DefaultClassLoader.loadResource(DefaultClassLoader.java:44)
at org.dozer.config.GlobalSettings.loadGlobalSettings(GlobalSettings.java:116)
at org.dozer.config.GlobalSettings.<init>(GlobalSettings.java:67)
at org.dozer.config.GlobalSettings.<clinit>(GlobalSettings.java:46)
at org.dozer.stats.StatisticsManagerImpl.<init>(StatisticsManagerImpl.java:39)
at org.dozer.stats.GlobalStatistics.<init>(GlobalStatistics.java:29)
at org.dozer.stats.GlobalStatistics.<clinit>(GlobalStatistics.java:24)
at org.dozer.DozerBeanMapper.<clinit>(DozerBeanMapper.java:59)

请指导我解决问题。

【问题讨论】:

标签: java classnotfoundexception dozer


【解决方案1】:

您的代码似乎正在使用 apace-commons-lang 包。 请从这里添加罐子http://mvnrepository.com/artifact/commons-lang/commons-lang/2.6。 检查您正在使用的版本。将 jar 添加到您的 lib 文件夹/类路径。

【讨论】:

    【解决方案2】:

    在你的类路径中包含commons-lang-&lt;version&gt;.jar

    【讨论】:

    • 嗨,我已将 commons-lang3-3.1 和 Dozer jar 添加到类路径中。但我仍然遇到异常:15:22:52,730 SEVERE [ContainerResponse] MappableContainerException 中包含的异常无法映射到响应,重新抛出到 HTTP 容器 java.lang.NoClassDefFoundError:无法初始化类 org。 dozer.DozerBeanMapper 在 com.ingenico.atlas.b2b.helper.DozerHelper.map(DozerHelper.java:13)
    • @AmitKumar 看起来你在类路径上遗漏了一些东西。似乎缺少 com.ingenico.atlas.b2b.helper.DozerHelper.map 的依赖项,类 org.dozer.DozerBeanMapper
    【解决方案3】:

    将 commons-lang jar 添加到 WEB-INF/lib 或 server/lib 中

    【讨论】:

      【解决方案4】:

      我收到了同样的错误,我在pom.xml 文件中添加了以下几行,在maven install 之后工作正常:

      <dependencies>
      
              <!-- commons lang dependency -->
              <dependency>
                  <groupId>commons-lang</groupId>
                  <artifactId>commons-lang</artifactId>
                  <version>2.6</version>
              </dependency>
      
      </dependencies> 
      

      【讨论】:

      • 在我的情况下,我的 pom.xml 已经有 commons-lang 依赖,但是 Eclipse 中的 tomcat 服务器仍然无法启动。我检查了“tomcat 服务器的 lib 目录”,发现那里没有 dozer jar。于是我将dozer jar 从.m2 目录复制到那里,问题就解决了。
      • 供 sbt 使用:libraryDependencies += "org.apache.commons" % "commons-lang3" % "3.4"
      【解决方案5】:

      如果您使用 maven 和 Ubuntu 14.04:

      这可能是由 Ubuntu 14.04 中包含的 maven 版本引起的,解决方法是从 http://maven.apache.org/download.cgi 下载 maven tarball 并使用该版本而不是发行版提供的默认版本。

      更多信息: https://github.com/airbnb/chronos/issues/211

      编辑:您还可以将符号链接添加到 commons-lang.jar 以避免进行自定义安装(cmets 中的Source 和 @Shoham)

      cd /usr/share/maven/lib
      sudo ln -s ../../java/commons-lang.jar .
      

      在尝试之前验证系统上的路径是否正确。它们应该适用于 Ubuntu 14.04 OOTB,但始终要验证。

      【讨论】:

      • 谢谢!也可以通过 'cd /usr/share/maven/lib sudo ln -s ../../java/commons-lang.jar .' 修复。
      • 浪费时间尝试解决各种 maven 问题。终于看到这个答案了。删除了我的~/.m2 目录,删除了我通过apt 安装的Ubuntu 的mvn,然后从mvn.apache.org 重新安装了mvn。现在一切正常!
      【解决方案6】:

      我在最新版本的 IntelliJ 社区版(idea-IC-13.224.1 或版本 14)和apache-maven 3.2.3 中遇到了同样的问题。

      $IDEA_HOME/plugins/maven/lib/maven3 文件夹中添加缺少的 jar (commons-lang-2.6.jar) 似乎可以修复它。

      【讨论】:

        猜你喜欢
        • 2022-01-21
        • 2021-07-02
        • 1970-01-01
        • 2015-06-30
        • 2020-10-06
        • 1970-01-01
        • 1970-01-01
        • 2018-02-16
        • 2019-01-06
        相关资源
        最近更新 更多