Microservices RestTemplate getForEntity方法405错误
使用RestTemplate getForEntity方法从端口8443调用在端口8444上运行的微服务,但出现以下错误: 使用邮递员-->邮政-->有限公司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
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}并动态传递公司名称