Microservices RestTemplate getForEntity方法405错误

Microservices RestTemplate getForEntity方法405错误,microservices,Microservices,使用RestTemplate getForEntity方法从端口8443调用在端口8444上运行的微服务,但出现以下错误: 使用邮递员-->邮政-->有限公司 Error { "timestamp": "2019-08-25T13:44:05.939+0000", "status": 500, "error": "Internal Server Error", "message": "405 null", "path": "/company/cases/INX CORP LT

使用RestTemplate getForEntity方法从端口8443调用在端口8444上运行的微服务,但出现以下错误: 使用邮递员-->邮政-->有限公司

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;
    }
}
错误
{
“时间戳”:“2019-08-25T13:44:05.939+0000”,
“地位”:500,
“错误”:“内部服务器错误”,
“消息”:“405空”,
“路径”:“/公司/案例/INX有限公司”
}
RestController
@请求映射(“/公司”)
公共类CompanyCaseController{
@自动连线
私人公司CaseService CompanyCaseService;
@PostMapping(path=“/cases/{companyName}”)
公共@ResponseBody
Page getCases(@PathVariable String companyName,@RequestBody映射分页){
LocalDateTime startTime=LocalDateTime.now();
Pageable Pageable=PageRequest.of(pagination.get(“page”)、pagination.get(“size”);
Page cases=companyCaseService.getCases(companyName,可分页);
List confonetCases=new ArrayList();
companyCaseService.getCases(companyName,pageable.stream())
.forEach(混淆案例1->{
如果(ConfNetCases1.getNextHearingDate()==null){
Map paramsMap=newhashmap();
paramsMap.put(“companyName”,companyName);
paramsMap.put(“分页”、“无”);
ResponseEntity Ju断ResponseEntity=新建RestTemplate()。getForEntity(“http://localhost:8444/company/judgement/{companyName}“,
判断、等级、参数);
//进行RestTemplate调用并获得给定案例的判断1
混淆案例1.setOrderDate(判断响应实体.getBody().getDateOfDisposal());
混淆案例1.setJudgementUrl(judgementResponseEntity.getBody().getJudgementURL());
}否则{
//调用RestTemplate以获取给定案例的历史记录1
//混淆案例1.设置下一个激活日期(history.getNext激活日期);
}
混杂病例。添加(混杂病例1);
});
Page Conftcases=new PageImpl(confonetCases,pageable,cases.getNumberOfElements());
LocalDateTime endTime=LocalDateTime.now();
System.out.println(“时差:+Duration.between(startTime,endTime.getSeconds());
返回案例;
}
}
@RestController
@请求映射(value=“/company”)
公共类公司法官控制人{
@自动连线
私人法官服务法官服务;
@后期映射(path=“/decision/{companyName}”)
公共@ResponseBody
Page GetDecisions(@PathVariable String companyName,@RequestBody String分页){
System.out.println(“内部获取判断方法”);
LocalDateTime startTime=LocalDateTime.now();
Map pageMap=newhashmap();
pageMap.put(“第页”,0);
pageMap.put(“大小”,20);
Pageable Pageable=PageRequest.of(pageMap.get(“page”)、pageMap.get(“size”);
页面判断=判断服务。获取判断(公司名称,可分页);
LocalDateTime endTime=LocalDateTime.now();
System.out.println(“时差:+Duration.between(startTime,endTime.getSeconds());
返回判决;
}
}

Firt方法是getCases()正在从另一个microservices调用GetDejustions()方法,但其抛出405 null错误是不允许的:API以405错误响应,以指示客户端试图使用资源不允许的HTTP方法

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

允许:获取、发布

在rest模板调用上添加try catch块并检查堆栈跟踪

        ResponseEntity<Judgement> judgementResponseEntity = new RestTemplate().getForEntity("http://localhost:8444/company/judgement/{companyName}",
ResponseEntity判断响应实体=新RestTemplate()。getForEntity(“http://localhost:8444/company/judgement/{companyName}“,

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

405方法不允许:API响应405错误,指示客户端试图使用资源不允许的HTTP方法

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

允许:获取、发布

在rest模板调用上添加try catch块并检查堆栈跟踪

        ResponseEntity<Judgement> judgementResponseEntity = new RestTemplate().getForEntity("http://localhost:8444/company/judgement/{companyName}",
ResponseEntity判断响应实体=新RestTemplate()。getForEntity(“http://localhost:8444/company/judgement/{companyName}“,
删除{companyName}并动态传递公司名称