【问题标题】:Getting error in restemplate post call在resttemplate post call中出现错误
【发布时间】:2015-09-26 13:27:01
【问题描述】:

使用 resttemplate 向基于 spring 的休息服务发出发布请求时,我收到以下错误

下面是我的代码:

 public void getData(String ip){
        try{
            RestTemplate rt = new RestTemplate();

            rt.getMessageConverters().add(new MappingJacksonHttpMessageConverter());/////Error Occurs are this line 
            rt.getMessageConverters().add(new StringHttpMessageConverter());
            String uri=new String("http://"+ip+":8080/pcap");
            Pcap_params pcap=new Pcap_params();
            pcap.setFlow_id("786");
            pcap.setIp_a("192.65.78.22");
            pcap.setPort_a("8080");
            pcap.setRegex("%ab");
            pcap.setTime_range("22-23");
            ResponseEntity rep=rt.postForEntity(uri, pcap, ResponseEntity.class);

        System.out.println("hi");
}

下面的错误我得到了

org.springframework.web.util.NestedServletException:处理程序处理失败;嵌套异常是 java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonProcessingException org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:972) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

注意我正在使用

import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.json.MappingJacksonHttpMessageConverter;

这与org/codehaus/jackson/JsonProcessingException 的使用无关,所以真的很困惑为什么会发生错误。我也尝试添加库,但它给出了 no class dif:objectmapper not found 的错误。

【问题讨论】:

  • 你使用的是maven还是ant?或者只是你设置了库罐子?
  • 你用的是什么版本的 Spring?

标签: java json spring spring-mvc servlets


【解决方案1】:

MappingJacksonHttpMessageConverter 只是 Jackson 库的包装器。如果你在 classparth 上没有它,你会得到这个错误。

如果您使用 Maven,解决方案是包括:

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.4.6</version>
    </dependency>

【讨论】:

  • @lubockrnac 它仍然给出相同的错误,在 pom.xml org.springframework.web.util.NestedServletException 中添加了上述内容:处理程序处理失败;嵌套异常是 java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonProcessingException org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:972)
【解决方案2】:

问题解决了,问题是spring的版本,更新pom.xml如下

<properties>
    <java-version>1.6</java-version>
    <org.springframework-version>3.1.2.RELEASE</org.springframework-version>
    <org.aspectj-version>1.6.10</org.aspectj-version>
    <org.slf4j-version>1.6.6</org.slf4j-version>
</properties>

【讨论】:

    猜你喜欢
    • 2013-11-16
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多