在Spring MVC中,当我执行以下命令时,它将显示错误。Map<String,Object> out = simpleJdbcCall.execute(in);
错误是:java.lang.NoSuchMethodError: org.springframework.jdbc.support.JdbcUtils.commonDatabaseName(Ljava/lang/String;)Ljava/lang/String; at org.springframework.jdbc.core.metadata.CallMetaDataProviderFactory$1.processMetaData(CallMetaDataProviderFactory.java:73)
请帮忙。我在过去的两天中一直陷入这个问题,但是仍然没有找到任何解决方案。
最佳答案
在少数情况下,您可以找到java.lang.NoSuchMethodError
。在这里,我根据您的问题总结了其中的一些。
引用的类时抛出NoSuchMethodError
错误
用于编译代码,并且classpath中的类是
不同。如果类的定义在运行时发生此错误
已经不兼容地改变了。用户必须检查以下错误:
情况下,类的定义发生了不兼容的更改。
当应用程序使用外部库时,可能引发NoSuchMethodError
错误。假设您的应用程序是使用外部库的特定版本编译和执行的。在某些时候,外部库已更改,某些方法已删除或更新。如果未更新应用程序的类路径,并且未使用外部库的最新版本编译代码,则在运行时,您将调用不再存在的方法,并抛出NoSuchMethodError
错误。
因此,在编译应用程序时,请确保您的类路径包含适当的源文件和.jar文件,并且每个文件都具有最新版本。
因此,解决您的问题的方法是检查所用.jar的版本。为此,您可以使用Maven依赖树,也可以查看Maven存储库。