我已经将commons-lang的版本从'commons-lang-2.6.jar'升级到了'commons-lang3-3.2.1.jar'。部署后,当我去测试特定的链接时,它会抛出“严重:>> java.lang.NoClassDefFoundError:org / apache / commons / lang / StringUtils
java.lang.ClassNotFoundException:org.apache.commons.lang.StringUtils”。我已经升级了Jar,以实现Swagger兼容性。我正在使用ant build,所有这些依赖项都在“ build.xml”中声明,并添加了库在lib文件夹中。
答案 0 :(得分:1)
Apache Commons Lang 3的基本软件包不再是org.apache.commons.lang
。
假设该错误发生在您自己的代码中,则必须用org.apache.commons.lang3
包替换它。
如果它在外部库中发生,请将它们升级到使用Lang 3的版本(如果可能),或者您可能还必须在依赖项之间保留较旧的 common lang (例如卡洛尔(Karol)的答案中所述,不同的软件包无论如何都将防止可能的冲突)。
例如:
org.apache.commons.lang.StringUtils在Lang 2.6中
vs
org.apache.commons.lang3.StringUtils in Lang 3
答案 1 :(得分:1)
commons-lang3
使用org.apache.commons.lang3
基本软件包来避免与commons-lang
的早期版本发生冲突。这样可以同时使用2.X
和3.X
。
要更新为3.X
,您必须在代码中更改import
,例如使用
import org.apache.commons.lang3.StringUtils;
答案 2 :(得分:1)
这是因为commons-lang3不具有commons-lang2中使用的软件包。 StringUtils类位于org.apache.commons.lang3中。包org.apache.commons.lang在commons-lang3中不存在。