Vla*_*mir 7 xml rest spring 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);
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误
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)
Run Code Online (Sandbox Code Playgroud)
请帮忙.谢谢,弗拉基米尔
Jam*_*esB 16
运行时的NoSuchMethodError表示您使用的库版本不同于构建代码的版本.
在你的情况下,春天是罪魁祸首.检查运行时类路径上的内容并确保以下内容:
查看http://docs.spring.io/spring/docs/3.2.0.M1/api/org/springframework/util/ClassUtils.html,从Spring 3开始,似乎不推荐使用ClassUtils.forName(String)我的猜测是,您已经针对具有此方法的版本构建了代码,但是正在使用已删除该方法的版本运行它.
ClassUtils类包含在spring-core jar中,因此我将确保在编译和运行时使用相同版本的jar.
小智 5
我们在迁移到 Spring 4.1.1 时遇到了类似的问题
在我们的例子中,我们有如下依赖
<dependency>
<groupId>org.springframework.javaconfig</groupId>
<artifactId>spring-javaconfig</artifactId>
<version>1.0.0.m3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我们添加了此依赖项以支持 bean 的后处理
<bean class="org.springframework.config.java.process.ConfigurationPostProcessor" />
Run Code Online (Sandbox Code Playgroud)
上述依赖项“ProcessUtils.java”中有一个类,它使用单个参数(字符串)调用 ClassUtils.forName。但是,此方法已被弃用。所以正在抛出异常。
我从stackoverflow 的另一篇文章中了解到,我们不需要 Spring 4.1.1 的 ConfigurationPostProcessor(我不确定确切版本,当启用此支持时)
一旦我们从我们的配置(Spring 上下文文件)中删除了以下内容,问题就解决了。
| 归档时间: |
|
| 查看次数: |
38279 次 |
| 最近记录: |