我收到以下错误消息:
错误解析模板[catalog / getCatalogItemFromCatalog / catalogItemId / 3916677],模板可能不存在,或者任何已配置的模板解析器都无法访问
我正在尝试使用此URL来获得我的服务和方法:
http://192.168.99.100:31003/catalog/getCatalogItemFromCatalog/catalogItemId/3916677
控制器:
@Controller
@RequestMapping("catalog")
public class CatalogController {
@GetMapping("/getCatalogItemFromCatalog/catalogItemId/{catalogItemId}")
public CatalogItem getCatalogItemFromCatalog(@PathVariable Integer catalogItemId){
List<Catalog> catalogs = getAllCatalogs();
Optional<CatalogItem> optionalCatalogItem = Optional.empty();
for(Catalog catalog : catalogs){
optionalCatalogItem = catalog.getCatalogItems().stream().filter(it -> it.getCatalogItemId().equals(catalogItemId)).findFirst();
}
return optionalCatalogItem.orElse(null);
}
@GetMapping("/system/ipaddr")
public String getIpAddr() {
List<String> response;
response = runSystemCommandAndGetResponse(IP_ADDR);
return new Gson().toJson(response);
}
}
当我卷曲时
http://192.168.99.100:31003/catalog/system/ipaddr
我没有问题。 我现在测试了几个小时,似乎什么也没用,我也不知道为什么它失败了。
答案 0 :(得分:2)
您的类上有@Controller
,这意味着spring会尝试使用所有可用的templateResolvers来解析控制器内部所有方法的返回类型。
通过使用@ResponseBody
spring将返回类型直接包装在响应中(转换后),然后将其返回给客户端,这类似于使用@RestController
而不是@Controller