Почему Heroku не корректно выводит информацию из развернутого в нем приложения?

Я новичок в Java-разработке. Я сделал приложение, которое проверяет работоспособность сайтов(down-detector). При локальном запуске spring приложения все сайты работают и отображаются корректно. Я задеплоил приложение на Heroku, и сайты перестали отображаться правильно. Скорее всего проблема из-за хероку, но как это исправить?

Controller

public class DetektController {
    private final SiteService siteService;
    private final GetAllService getAllService;

    public DetektController(SiteService siteService, GetAllService getAllService) {
        this.siteService = siteService;
        this.getAllService = getAllService;
    }

    private String getStatus(boolean result) {
        if (result) {
            return " OK";
        } else {
            return "FAIL";
        }
    }

    @GetMapping("/all")
    String getAll(Model model) {
        List<CheckResult> checkResults = getAllService.getUriAndStatus();
        List<CheckResultDto> checkResultDtos = new ArrayList<>();

        for (CheckResult checkResult : checkResults) {
            checkResultDtos.add(new CheckResultDto(checkResult.getUri(), getStatus(checkResult.isStatus())));
        }

        model.addAttribute("sites", checkResultDtos);
        return "all";
    }

    @GetMapping("/add")
    String addSite() {
        return "add.html";
    }

    @PostMapping("/add")
    String addNewSite(@ModelAttribute AddNewSiteRequestDto request) {
        Site site = new Site(null, request.getSite());
        siteService.save(site);
        return "redirect:/all";
    }

    @GetMapping("/deleteAll")
    String deleteAllSite() {
        siteService.deleteAllSite();
        return "redirect:/all";
    }

    @GetMapping("/deleteByUri")
    String deleteByUri(@RequestParam String uri) {
        siteService.deleteByUri(uri);
        return "redirect:/all";
    }

Service

public class SiteService {

    private final SiteRepositoryDao siteRepository;

    public Site save(Site site) {
        return siteRepository.save(site);
    }

    public Iterable<Site> getAll() {
        return siteRepository.findAll();
    }

    public void deleteAllSite() {
        siteRepository.deleteAll();
    }

    public void deleteByUri(String uri) {
        siteRepository.deleteByUri(uri);
    }

@Service
public class GetAllService {
    private final InetAddressCheckerService inetAddressCheckerService;
    private final SiteService siteService;
    private final int timeout;
    private final SiteConditionRepositoryDao siteConditionRepositoryDao;

    public GetAllService(
        InetAddressCheckerService inetAddressCheckerService,
        SiteService siteService,
        @Value("${url-checker.timeout}") int timeout,
        SiteConditionRepositoryDao siteConditionRepositoryDao
    ) {
        this.inetAddressCheckerService = inetAddressCheckerService;
        this.siteService = siteService;
        this.timeout = timeout;
        this.siteConditionRepositoryDao = siteConditionRepositoryDao;
    }

    public List<CheckResult> getUriAndStatus() {
        Iterable<Site> sites = siteService.getAll();
        List<CheckResult> checkResults = new ArrayList<>();
        List<SiteCondition> siteConditions = new ArrayList<>();

        for (Site site : sites) {
            boolean result = inetAddressCheckerService.checkUriAddress(URI.create(site.getUri()), timeout);

            CheckResult checkResult = new CheckResult(site.getUri(), result);
            SiteCondition siteCondition = new SiteCondition(null, site.getUri(), result, LocalDateTime.now());

            siteConditions.add(siteCondition);
            checkResults.add(checkResult);
        }
        siteConditionRepositoryDao.saveAll(siteConditions);
        return checkResults;
    }

@Service
public class InetAddressCheckerService {

    public boolean checkUriAddress(URI address, int timeOut) {
        boolean result;
        try {
            result = InetAddress.getByName(address.getHost()).isReachable(timeOut);
            return result;
        } catch (IOException e) {
        }
        return false;
    }
}

веб отображение

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="css/style1.css" rel="stylesheet">
</head>
<body>
<h1>
    Результат проверки работоспособности сайтов
</h1>
<h4>
<form action="/deleteAll" method="get" onsubmit="return checkDeleteAll()">
    <input type="submit" value=" Delete ALL">
</form>
<script>
    function checkDeleteAll(){
        return window.confirm("Точно удалить все записи?")
    }
</script>
</h4>
<table>
    <tr>
        <th>Uri</th>
        <th>Status</th>
        <th>Operation</th>
    </tr>
    <th:block th:each="site : ${sites}">
        <tr>
            <td th:text="${site.uri}"></td>
            <td th:text="${site.status}"></td>
            <td>
                <form th:action="@{deleteByUri}" method="get">
                    <input type="hidden" name="uri" th:value="${site.uri}"/>
                    <input type="submit" value="Delete" class="btn btn-danger"/>
                </form>
            </td>

        </tr>
    </th:block>
</table>
</body>
</html>

введите сюда описание изображения

введите сюда описание изображения


Ответы (0 шт):