2015-10-15 1 views
0

ошибки:Я пытаюсь ударить RESTful API через resttemplate, но я получаю обработку запроса не удалось

package com.concretepage.bean; 

import org.springframework.beans.factory.annotation.Value; 

import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 

@JsonIgnoreProperties(ignoreUnknown = true) 
public class Quote { 

    private String type; 
    private Value value; 

    public Quote() { 
    } 

    public String getType() { 
     return type; 
    } 

    public void setType(String type) { 
     this.type = type; 
    } 

    public Value getValue() { 
     return value; 
    } 

    public void setValue(Value value) { 
     this.value = value; 
    } 

    @Override 
    public String toString() { 
     return "Quote{" + 
       "type='" + type + '\'' + 
       ", value=" + value + 
       '}'; 
    } 
} 

класс контроллера:

package com.concretepage.controller; 
import java.util.ArrayList; 
import java.util.List; 

import javax.servlet.http.HttpServletRequest; 

import org.springframework.http.converter.HttpMessageConverter; 
import org.springframework.http.converter.json.MappingJacksonHttpMessageConverter; 
import org.springframework.stereotype.Controller; 
import org.springframework.ui.ModelMap; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.client.RestTemplate; 

import com.concretepage.bean.Quote; 

@Controller 
public class LoginController { 


    @RequestMapping(value="login", method = RequestMethod.GET) 
    public String login(){ 
     System.setProperty("proxyHost", "proxy1.wipro.com"); 
     System.setProperty("proxyPort", "8080"); 
     return "redirect:pages/login.jsp"; 
    } 

    @RequestMapping(value="pages/userCheck", method = RequestMethod.POST) 
    public String userCheck(ModelMap model, HttpServletRequest request) { 
     String name=request.getParameter("name"); 
     String pwd=request.getParameter("pwd"); 
     if("concretepage".equalsIgnoreCase(name)&&"concretepage".equalsIgnoreCase(pwd)){ 

      model.addAttribute("message", "Successfully logged in."); 

      RestTemplate restTemplate = new RestTemplate(); 

      List<HttpMessageConverter<?>> messageConverters =restTemplate.getMessageConverters(); 
      MappingJacksonHttpMessageConverter map =new MappingJacksonHttpMessageConverter(); 
       messageConverters.add(map); 
       restTemplate.setMessageConverters(messageConverters); 

       Quote quote = restTemplate.getForObject("http://gturnquist-quoters.cfapps.io/api/random", Quote.class); 

       System.out.println(quote.toString()); 


     }else{ 
      model.addAttribute("message", "Username or password is wrong."); 
     } 
     return "redirect:success.jsp"; 
    } 

} 

Qoute класс:

package com.concretepage.bean; 

import org.springframework.beans.factory.annotation.Value; 

import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 

@JsonIgnoreProperties(ignoreUnknown = true) 
public class Quote { 

    private String type; 
    private Value value; 

    public Quote() { 
    } 

    public String getType() { 
     return type; 
    } 

    public void setType(String type) { 
     this.type = type; 
    } 

    public Value getValue() { 
     return value; 
    } 

    public void setValue(Value value) { 
     this.value = value; 
    } 

    @Override 
    public String toString() { 
     return "Quote{" + 
       "type='" + type + '\'' + 
       ", value=" + value + 
       '}'; 
    } 
} 
+0

Ошибка, которую я получаю: сообщение Ошибка обработки запроса; Вложенное исключение - org.springframework.web.client.RestClientException: не удалось извлечь ответ: нет подходящего HttpMessageConverter, найденного для типа ответа [com.concretepage.bean.Quote] и типа содержимого [application/json; charset = UTF-8] – Zishan

+0

Please добавьте stacktrace к вашему вопросу, используя функцию редактирования. Не так, как команда – Jens

ответ

0

Ваш import org.springframework.beans.factory.annotation.Value может быть неправильным в Quote.class Json object.

Ответ от RequestingURL Вы пытаетесь поразить, как показано ниже.

Вы должны спроектировать свой объект Json в соответствии с ответом, возвращаемым сервером.

{ 
    "type": "success", 
    "value": { 
    "id": 4, 
    "quote": "Previous to Spring Boot, I remember XML hell, confusing set up, and many hours of frustration." 
} 
} 

Вы, возможно, придется создать еще один объект POJO Value со свойствами id и quote и определяют это как свойство в Quote классе.

+0

Thnks. Такая глупая ошибка. :) – Zishan