【问题标题】:RestTemplate getForEntity Method 405 ErrorRestTemplate getForEntity 方法 405 错误
【发布时间】:2019-08-25 14:33:24
【问题描述】:

使用 RestTemplate getForEntity 方法从端口 8443 调用在端口 8444 上运行的微服务,但出现以下错误: 使用 PostMan -->POST-->http://localhost:8443/company/cases/INX CORP LTD

Error
{
  "timestamp": "2019-08-25T13:44:05.939+0000",
  "status": 500,
  "error": "Internal Server Error",
  "message": "405 null",
  "path": "/company/cases/INX CORP LTD"
}



RestController
@RequestMapping("/company")
public class CompanyCaseController {

@Autowired
private CompanyCaseService companyCaseService;

@PostMapping(path = "/cases/{companyName}")
public @ResponseBody
Page<ConfonetCases> getCases(@PathVariable String companyName, @RequestBody Map<String, Integer> pagination){
LocalDateTime startTime = LocalDateTime.now();
Pageable pageable = PageRequest.of(pagination.get("page"), pagination.get("size"));


Page<ConfonetCases> cases = companyCaseService.getCases(companyName, pageable);
List<ConfonetCases> confonetCases = new ArrayList<>();


companyCaseService.getCases(companyName, pageable).stream()
    .forEach(confonetCases1 -> {
        if (confonetCases1.getNextHearingDate() == null) {

            Map<String, String> paramsMap = new HashMap<>();
            paramsMap.put("companyName", companyName);
            paramsMap.put("pagination", "NONE");


            ResponseEntity<Judgement> judgementResponseEntity = new RestTemplate().getForEntity("http://localhost:8444/company/judgement/{companyName}",
                                                                                                Judgement.class, paramsMap);

            // Make RestTemplate call call and get judgement for the given case confonetCases1
            confonetCases1.setOrderDate(judgementResponseEntity.getBody().getDateOfDisposal());
            confonetCases1.setJudgementUrl(judgementResponseEntity.getBody().getJudgementURL());
        } else {

            //Make RestTemplate call to get History foe the given case confonetCases1
            //confonetCases1.setNextHearingDate(history.getNextHearingDate);
        }
        confonetCases.add(confonetCases1);

    });


Page<ConfonetCases> Conftcases = new PageImpl<ConfonetCases>(confonetCases,pageable,cases.getNumberOfElements());
LocalDateTime endTime = LocalDateTime.now();
System.out.println("Time Difference: " + Duration.between(startTime, endTime).getSeconds());
return cases;
}
}



@RestController
@RequestMapping(value="/company")
public class CompanyJudgementController {

    @Autowired
    private JudgementService judgementService ;

   @PostMapping(path = "/judgement/{companyName}")
    public @ResponseBody
    Page<Judgement> getJudgements(@PathVariable String companyName, @RequestBody String pagination){

        System.out.println("Inside getJudgements method..............................>>>>");
        LocalDateTime startTime = LocalDateTime.now();

        Map<String, Integer> pageMap = new HashMap();
        pageMap.put("page", 0);
        pageMap.put("size", 20);

        Pageable pageable = PageRequest.of(pageMap.get("page"), pageMap.get("size"));

        Page<Judgement> judgements = judgementService.getJudgements(companyName, pageable);
        LocalDateTime endTime = LocalDateTime.now();
        System.out.println("Time Difference: " + Duration.between(startTime, endTime).getSeconds());
        return judgements;
    }
}

Firt Method is getCases() 正在从另一个微服务调用 getJudgements() 方法,但它抛出 405 null 错误

【问题讨论】:

    标签: microservices


    【解决方案1】:

    405 Method Not Allowed :API 以 405 错误响应,表示客户端尝试使用资源不允许的 HTTP 方法。

    405 响应必须包含 Allow 标头,其中列出了 HTTP 资源支持的方法。例如:

    允许:GET、POST

    在 rest 模板调用和检查堆栈跟踪时添加 try catch 块。

            ResponseEntity<Judgement> judgementResponseEntity = new RestTemplate().getForEntity("http://localhost:8444/company/judgement/{companyName}",
    

    移除 {companyName} 并动态传递公司名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      • 1970-01-01
      • 2017-11-13
      • 1970-01-01
      相关资源
      最近更新 更多