Ошибка разрешения шаблона - сбой сопоставления URL - PullRequest
0 голосов
/ 23 декабря 2018

Я получаю следующее сообщение об ошибке:

Ошибка разрешения шаблона [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

У меня нет проблем.Я тестирую уже несколько часов, и, похоже, ничего не работает, я понятия не имею, почему это не так.

1 Ответ

0 голосов
/ 23 декабря 2018

у вас есть @Controller в вашем классе, что означает, что spring попытается разрешить тип возврата всех ваших методов внутри контроллера, используя все доступные templateResolvers.

с помощью @ResponseBody, пружина перенесет возвратвведите внутри ответа (после преобразования) напрямую, а затем возвращает его клиенту, это похоже на использование @RestController вместо @Controller

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...