我在REST,Spring MVC中有一个客户端 - 服务器架构。客户端正在访问服务器URL并发送两个参数。服务器应该使用响应值回复客户端。一个客户端我使用RestTemplate访问服务器URL。运行时,服务器URL成功访问(服务器端逻辑正在执行),但后来我在客户端收到以下错误:
HTTP Status 400 -
--------------------------------------------------------------------------------
type Status report
message
description The request sent by the client was syntactically incorrect ().
客户端代码是:
rresult = restTemplate.getForObject("http://localhost:8081/Merchant/api/movieTheater"+params.toString(), ResponseText.class);
esrver端代码是:
@ResponseBody
@RequestMapping(value="movieTheater")
public ResponseText getCustomerInput(@RequestParam("name") String name, @RequestParam("price") Double price) {
System.out.println("Requst URL got accessed here");
ResponseText result = new ResponseText();
Transaction transaction = new Transaction();
transaction.setMovieName(name);
transaction.setTicketPrice(price);
transaction.setDatetime(new Date());
if(transactionService.addTransaction(transaction))
result.setMessage(ResponseStatus.SUCCESS.getStatus());
else
result.setMessage(ResponseStatus.FAILED.getStatus());
return result;
}
当我单独访问URL时,它工作正常。我不确定我做错了什么。请帮忙!提前谢谢!
答案 0 :(得分:2)
我想通了!我有一个内部类用于在客户端创建JSON结构。解决方案是使该类静态!因为它不是静态的,所以它试图实例化,因此得到错误消息:“无法读取JSON:没有为类型找到合适的构造函数”
答案 1 :(得分:0)
我猜网址"http://localhost:8081/Merchant/api/movieTheater"+params.toString()
不正确。什么是params
的类名,以及mothod toString()
返回的结果是什么。当访问不正确的URL时,getCustomerInput()
方法无法获取参数值。
网址必须与此类似
http://localhost:8081/Merchant/api/movieTheater?name=xxx&price=1.01