org.springframework.web.client.RestClientException: не удалось записать запрос: не найден подходящий HttpMessageConverter для типа запроса - PullRequest
0 голосов
/ 18 марта 2019
response.setContentType("application/json");
        response.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();  




    String Empcode="10743";
            String password="IsaiVanan";

            final String uri = "https://vtop9.vit.ac.in/vtoplogin/employeeLoginPost";

                RestTemplate restTemplate = new RestTemplate();

            HttpHeaders headers = new HttpHeaders();
               headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
               headers.setContentType(MediaType.APPLICATION_JSON);
               /* headers.add("userid",Empcode);
                headers.add("pwd",password);*/

               MultiValueMap<String, String> postParams = new LinkedMultiValueMap<String, String>();
               postParams.add("userid",Empcode);
               postParams.add("pwd",password);



                                HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity<MultiValueMap<String, String>>(postParams,headers);
                                    System.out.println("Try coming1..!");

                                        ResponseEntity<UserValidation> result= restTemplate.exchange(uri, HttpMethod.POST,entity, UserValidation.class);
                            out.print("result..."+result.getBody().getResponseMsg());       

Я сделал все, что я добавляю зависимость остальных API, эта ведьма, я все еще делал ответный контент в приложении / json; это не работает, я нахожу это решение только в некотором стеке проверить поток ..!

public class UserValidation {

    private String responseMsg ;
    private Integer responseCode;
    public String getResponseMsg() {
        return responseMsg;
    }
    public void setResponseMsg(String responseMsg) {
        this.responseMsg = responseMsg;
    }
    public Integer getResponseCode() {
        return responseCode;
    }
    public void setResponseCode(Integer responseCode) {
        this.responseCode = responseCode;
    }

}


org.springframework.web.client.RestClientException: Could not write request: no suitable HttpMessageConverter found for request type [org.springframework.util.LinkedMultiValueMap] and content type [application/json]
    at org.springframework.web.client.RestTemplate$HttpEntityRequestCallback.doWithRequest(RestTemplate.java:597)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:436)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:401)
    at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:377)
    at sample.doGet(sample.java:82)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:625)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:498)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:796)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1372)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

ошибка возникает, когда я добавляю jar-файлы в проект пути сборки, а именно rest api jar, spring frameworks ...

ошибка показывает и проконсультируйтесь со всеми, кого они знали об остальных API.

кто-то, пожалуйста, найдите решение и получите исправленный вывод, пожалуйста

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Для извлечения ресурса с помощью application/json Accept Header вам понадобится MappingJackson2HttpMessageConverter, который является одним из специальных HttpMessageConverters, который выглядит так, как будто вы пропустили.

Попробуйте добавить ниже сразу после инициализации RestTemplate как:

RestTemplate restTemplate = new RestTemplate();
List<HttpMessageConverter<?>> converters = new ArrayList<HttpMessageConverter<?>>();
converters.add(new MappingJackson2HttpMessageConverter());
restTemplate.setMessageConverters(converters);
// carry on with your code
0 голосов
/ 18 марта 2019

Spring не может проанализировать полезную нагрузку вашего запроса (LinkedMultiValueMap) в JSON.Пожалуйста, убедитесь, что вы используете конвертер, который может сделать это.Таким образом, ваш запрос не отправлен в целевую систему.

Пожалуйста, прочтите это для получения дополнительной информации: https://www.baeldung.com/spring-httpmessageconverter-rest

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...