首页 > 解决方案 > REST POST 与 POSTMAN 一起正常工作,但在使用 Spring RestTemplate 从客户端调用时出现异常

问题描述

我正在尝试从客户端调用休息服务。我能够在不同的项目中调用其他一些服务而没有任何问题。

它在线上抛出错误restTemplate.postForEntity

private String postCarEvent(
      Inspection inspection, Car car, String id, String carId) {
    CarEventBean bean = carToCarEventBean(inspection, car, id, carId);
    String eventId = null;
    try {
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    HttpEntity<CarEventBean> request = new HttpEntity<>(bean, headers);
      ResponseEntity<?> response = restTemplate.postForEntity(urlsConfig.getCarEventUrl(), request, CarEventBean.class);
      System.out.println("postCar:car-event response :" + response);
      if (Arrays.stream(Constants.SUCCESS_SERVICE_RESPONSES)
          .anyMatch(status -> status == response.getStatusCode())) {
        System.out.println("Car event inserted/updated successfully :)");
      }
    } catch (HttpClientErrorException e) {
      System.out.println("In postCar:car-event - stats code :" + e.getStatusCode());
      System.out.println(
          "In postCar:car-event - response body as string :" + e.getResponseBodyAsString());
    }
    return eventId;
  }

期望调用服务没有错误

org.springframework.jms.listener.adapter.ListenerExecutionFailedException: Listener method 'public void com.lo.test.consumer.jms.InspectionReceiver.processInspection(com.lo.test.consumer.bean.Inspection)' threw exception; nested exception is org.springframework.web.client.HttpServerErrorException: 500 null
    at org.springframework.jms.listener.adapter.MessagingMessageListenerAdapter.invokeHandler(MessagingMessageListenerAdapter.java:112)
    at org.springframework.jms.listener.adapter.MessagingMessageListenerAdapter.onMessage(MessagingMessageListenerAdapter.java:69)
    at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:721)
    at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:681)
    at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:651)
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:317)
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:255)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1166)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1158)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1055)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.web.client.HttpServerErrorException: 500 null
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:66)
    at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:700)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:653)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:613)
    at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:407)
    at com.lo.test.consumer.jms.InspectionReceiver.postCarEvent(InspectionReceiver.java:187)
    at com.lo.test.consumer.jms.InspectionReceiver.lambda$2(InspectionReceiver.java:137)
    at java.util.ArrayList.forEach(Unknown Source)
    at com.lo.test.consumer.jms.InspectionReceiver.postCar(InspectionReceiver.java:134)
    at com.lo.test.consumer.jms.InspectionReceiver.processInspection(InspectionReceiver.java:63)

标签: jmsresttemplatespring-jms

解决方案


推荐阅读