重新模板调用后出错

时间:2015-09-26 13:27:01

标签: java json spring spring-mvc servlets

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

以下是我的代码:

 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:   组织/ Codehaus的/杰克逊/ 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的使用无关,所以真的很混淆为什么会出现错误。我也尝试添加库,但是它没有找到没有找到类dif:objectmapper的错误。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

问题解决了,问题在于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>