升级 commons-lang-2.6.jar 抛出 NoClassDefFoundError
Upgrading the commons-lang-2.6.jar throws NoClassDefFoundError
我已经将 commons-lang 的版本从 'commons-lang-2.6.jar' 升级到 'commons-lang3-3.2.1.jar'。部署后,当我去测试特定的 link 它抛出“严重:>>java.lang.NoClassDefFoundError:org/apache/commons/lang/StringUtils
java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils". I have upgraded the Jar for Swagger compatability. I am using ant build, all these dependencies are declared in 'build.xml' and libraries are added in lib folder.
Apache Commons Lang 3 的基础包不再 org.apache.commons.lang
。
前提是你自己的代码出现错误,你得换成org.apache.commons.lang3
包。
如果它出现在外部库中,请将它们升级到使用 Lang 3 的版本(如果可能),或者您可能还必须保留旧的 commons lang在依赖关系中(正如 Karol 在回答中所解释的那样,不同的包无论如何都会防止可能的冲突)。
例如:
org.apache.commons.lang.StringUtils 在 Lang 2.6
对比
commons-lang3
正在使用 org.apache.commons.lang3
基础包以避免与以前版本的 commons-lang
发生冲突。这允许同时使用 2.X
和 3.X
。
要更新到 3.X
,您必须更改代码中的 import
,例如使用
import org.apache.commons.lang3.StringUtils;
那是因为 commons-lang3 没有 commons-lang2 中使用的包。 class StringUtils 在 org.apache.commons.lang3 中。包 org.apache.commons.lang 不存在于 commons-lang3.
java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils". I have upgraded the Jar for Swagger compatability. I am using ant build, all these dependencies are declared in 'build.xml' and libraries are added in lib folder.
Apache Commons Lang 3 的基础包不再 org.apache.commons.lang
。
前提是你自己的代码出现错误,你得换成org.apache.commons.lang3
包。
如果它出现在外部库中,请将它们升级到使用 Lang 3 的版本(如果可能),或者您可能还必须保留旧的 commons lang在依赖关系中(正如 Karol 在回答中所解释的那样,不同的包无论如何都会防止可能的冲突)。
例如:
org.apache.commons.lang.StringUtils 在 Lang 2.6
对比
commons-lang3
正在使用 org.apache.commons.lang3
基础包以避免与以前版本的 commons-lang
发生冲突。这允许同时使用 2.X
和 3.X
。
要更新到 3.X
,您必须更改代码中的 import
,例如使用
import org.apache.commons.lang3.StringUtils;
那是因为 commons-lang3 没有 commons-lang2 中使用的包。 class StringUtils 在 org.apache.commons.lang3 中。包 org.apache.commons.lang 不存在于 commons-lang3.