xml - java.lang.NoSuchMethodError : org. springframework.util.ClassUtils.forName(Ljava

标签 xml spring rest resttemplate

我使用非常简单的代码返回 XML

RestTemplate restTemplate = new RestTemplate();

Source oResponse = restTemplate.postForObject(url, entity, Source.class,
            vars);

XPathOperations xpathTemplate = new Jaxp13XPathTemplate();
String address = xpathTemplate.evaluateAsString("//status", oResponse);

但是,我收到以下错误

java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.forName(Ljava/lang/String;)Ljava/lang/Class;
at org.springframework.xml.JaxpVersion.<clinit>(JaxpVersion.java:51)
at org.springframework.xml.transform.TraxUtils.isStaxSource(TraxUtils.java:70)
at org.springframework.xml.xpath.Jaxp13XPathTemplate.evaluate(Jaxp13XPathTemplate.java:131)
at org.springframework.xml.xpath.Jaxp13XPathTemplate.evaluateAsString(Jaxp13XPathTemplate.java:91)

请帮忙。 谢谢, 弗拉基米尔

最佳答案

运行时出现 NoSuchMethodError 表示您使用的库版本与构建代码所针对的版本不同。

就你而言,Spring 是罪魁祸首。在运行时检查类路径上的内容并确保以下内容:

  • 版本与编译时jar相同
  • 如果有多个版本,请删除不需要的版本

查看http://docs.spring.io/spring/docs/3.2.0.M1/api/org/springframework/util/ClassUtils.html ,看来 ClassUtils.forName(String) 从 Spring 3 开始已被弃用。我的猜测是您已经针对具有此方法的版本构建了代码,但正在使用该方法已被删除的版本运行它。

ClassUtils 类包含在 spring-core jar 中,因此我将确保在编译和运行时使用该 jar 的相同版本。

关于xml - java.lang.NoSuchMethodError : org. springframework.util.ClassUtils.forName(Ljava,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57308530/

相关文章:

php - 第 1 行第 3 列错误 : xmlParsePI : no target name

java - Spring 5 中的 Hello World 应用程序上下文

python - 使用 CherryPY MethodDispatcher 的动态 URL

c++ - 如何使用 QNetworkAccessManager 发送 DELETE 请求?

java - 经过身份验证的 REST 请求是否始终意味着数据库请求?

java - 如何消除使用 dom4j Iterator 时未经检查的分配警告

sql-server - T-SQL 生成 XML

c# - 如何在类而不是属性上设置 XML 元素的名称

java - Spring Webflux 中实体管理器的问题

Spring安全身份验证管理器没有提供者