ultraq / thymeleaf-layout-dialect

A dialect for Thymeleaf that lets you build layouts and reusable templates in order to improve code reuse
https://ultraq.github.io/thymeleaf-layout-dialect/
Apache License 2.0
700 stars 111 forks source link

layout:decorate="~{layout} in nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect version 3.2.1 doesn't work #238

Closed Bibi4kovIgor closed 8 months ago

Bibi4kovIgor commented 9 months ago

I'm using your library nz.net.ultraq.thymeleaf version 3.2.1 with Spring boot 3

The problem, that I faced with lean in using layout:decorate statement in my content page

Every time I run my app I got an error: Error during execution of processor 'nz.net.ultraq.thymeleaf.layoutdialect.decorators.DecorateProcessor'

GItHub (develop branch)

Bibi4kovIgor commented 9 months ago

Source files: layout.html:

<!DOCTYPE html>
<html
      lang="uk"
      xmlns:th="http://www.thymeleaf.org"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Інтернет-магазин - th:replace="${title}"</title>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css"
        integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65"
        crossorigin="anonymous">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"
        integrity="sha512-z3gLpd7yknf1YoNbCzqRKc4qyor8gaKU1qmn+CShxbuBusANI9QpRohGBreCFkKxLhei6S9CQXFEbbKuqLg0DA=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
  <link rel="icon" type="image/svg+xml" th:href="@{favicons/favicon.svg}"  />
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.min.js"
          integrity="sha384-cuYeSxntonz0PPNlHhBs68uyIAVpIIOZZ5JqeqvYYIcEL727kskC66kF92t6Xl2V"
          crossorigin="anonymous"></script>
</head>
<body>
  <header>
    <div layout:fragment="header"></div>
  </header>

  <section>
    <div layout:fragment="content"></div>
  </section>

  <footer>
    <div layout:fragment="footer"></div>
  </footer>
</body>
</html>

MainPageController.java:

import edu.lemon.DemoInternetStore.controller.services.CustomersService;
import edu.lemon.DemoInternetStore.controller.services.ProductsService;
import edu.lemon.DemoInternetStore.model.dto.CustomersDto;
import edu.lemon.DemoInternetStore.model.dto.ProductsDto;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import java.util.Optional;

@Controller
public class MainPageController {

    CustomersService customersService;
    ProductsService productsService;

    public MainPageController(CustomersService customersService, ProductsService productsService) {
        this.customersService = customersService;
        this.productsService = productsService;
    }

    @GetMapping(value = {"/", "/index", "/home"})
    public ModelAndView index(
            @ModelAttribute("response") ModelMap model,
            @RequestParam(value = "name", required = false) String name) {
        Optional<CustomersDto> customerDaoOptional = customersService.getUserInfoByName(name);

        String responseString = customerDaoOptional.isEmpty()
                ? "User was not found"
                : customerDaoOptional.toString();
        model.addAttribute("responseString", responseString);
        return new ModelAndView("/pages/index", model);
    }

    @GetMapping("/customers")
    public ModelAndView getCustomersByFirstName(
            @ModelAttribute("response") ModelMap model,
            @RequestParam(value = "name", required = false) String name) {
        model.addAttribute("customers", customersService.getCustomerByFirstName(name));
        model.addAttribute("customerType", CustomersDto.class);
        return new ModelAndView("/pages/customers", model);
    }

    @GetMapping("/products")
    public ModelAndView getProductsList(ModelMap modelMap){
        return new ModelAndView(
                "/pages/products",
                new ModelMap()
                        .addAttribute("products", productsService.getAllProducts())
                        .addAttribute("productType", ProductsDto.builder().build()));
    }

}

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.1.1</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>edu.lemon</groupId>
    <artifactId>DemoInternetStore</artifactId>
    <version>0.2</version>
    <name>DemoInternetStore</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>3.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            <version>3.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-oauth2-client</artifactId>
        </dependency>

        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.9.0</version>
        </dependency>
        <dependency>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-core</artifactId>
            <version>9.5.1</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
        </dependency>
        <dependency>
            <groupId>nz.net.ultraq.thymeleaf</groupId>
            <artifactId>thymeleaf-layout-dialect</artifactId>
            <version>3.2.1</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.5.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <finalName>internetstore</finalName>
                    <outputDirectory>${project.basedir}/docker/images</outputDirectory>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>libs/</classpathPrefix>
                            <mainClass>edu.lemon.DemoInternetStore.Application</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

products.html:

<!DOCTYPE html>
<html lang="uk"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      layout:decorate="~{layout}">

    <head>
        <title>Products List</title>
    </head>
    <body>
        <section>
            <div layout:fragment="content"
                 xmlns:th="http://www.thymeleaf.org"
                 class="container">
                <div id="productsList" >
                    <div th:if="${#lists.size(products) == 0}">
                        <h2>There are no products was added yet</h2>
                    </div>

                    <table class="table">
                        <thead>
                            <tr>
                                <th scope="col">Product Name</th>
                                <th scope="col">Quantity</th>
                                <th scope="col">Price</th>
                                <th scope="col">Vendor Code</th>
                                <th scope="col">Description</th>
                            </tr>
                        </thead>
                        <tbody th:each="product : ${products}">
                        <tr>
                            <td th:text="${product.name}"></td>
                            <td th:text="${product.quantity}"></td>
                            <td th:text="${product.price}"></td>
                            <td th:text="${product.vendorCode}"></td>
                            <td th:text="${product.description}"></td>
                        </tr>
                        </tbody>
                    </table>
                </div>
            </div>
        </section>
    </body>
</html>
ultraq commented 9 months ago

Hi there, unfortunately the develop branch of your GitHub project seems to be in a state that was before you tried adding all of the Thymeleaf-related code. I even tried copy/pasting the code you had above into their proper places, but then the controller was missing things like a CustomerService, ProductService, Spring was complaining about DB connection URLs, etc.

In the end I commented out a lot of that stuff so got your products page to show with an empty list, and it showed up fine with no error and the expected HTML:

Screenshot 2023-08-28 at 6 36 20 PM Screenshot 2023-08-28 at 6 36 32 PM

If you could create a branch with the broken Thymeleaf template part, then I can look at that. Otherwise, this may point to other things not being set up that might be at the heart of the problem.

Bibi4kovIgor commented 8 months ago

I'd create test project with thymeleaf ultraq decorator (with Intellijidea environment) and it had been worked. Next, I'd try to package my project to jar-file (the same one) and got an unexpeccted error: " Error rendering view [org.thymeleaf.spring6.view.ThymeleafView@3deb5eb6] internetstore-application-1 | org.thymeleaf.exceptions.TemplateProcessingException: Error during execution of processor 'nz.net.ultraq.thymeleaf.layoutdialect.decorators.DecorateProcessor' (template: "pages/products" - line 5, col 7)"

Bibi4kovIgor commented 8 months ago

page/products file:

<!DOCTYPE html>
<html lang="uk"
      xmlns:th="http://www.thymeleaf.org"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      layout:decorate="~{layout.html}">

    <head>
        <title>Products List</title>
    </head>
    <body>
        <section layout:fragment="content">
            <div class="container">
                <div id="productsList" >
                    <div th:if="${#lists.size(products) == 0}">
                        <h2>There are no products was added yet</h2>
                    </div>

                    <table class="table">
                        <thead>
                            <tr>
                                <th scope="col">Product Name</th>
                                <th scope="col">Quantity</th>
                                <th scope="col">Price</th>
                                <th scope="col">Vendor Code</th>
                                <th scope="col">Description</th>
                            </tr>
                        </thead>
                        <tbody th:each="product : ${products}">
                        <tr>
                            <td th:text="${product.name}"></td>
                            <td th:text="${product.quantity}"></td>
                            <td th:text="${product.price}"></td>
                            <td th:text="${product.vendorCode}"></td>
                            <td th:text="${product.description}"></td>
                        </tr>
                        </tbody>
                    </table>
                </div>
            </div>
        </section>
    </body>
</html>
Bibi4kovIgor commented 8 months ago

Full stack trace:

TEMPLATE ENGINE CONFIGURED OK
internetstore-application-1  | 20:25:36.544 DEBUG org.thymeleaf.TemplateEngine - [THYMELEAF] TEMPLATE ENGINE INITIALIZED
internetstore-application-1  | 20:25:36.695 ERROR org.thymeleaf.TemplateEngine - [THYMELEAF][http-nio-8082-exec-6] Exception processing template "pages/products": Error during execution of processor 'nz.net.ultraq.thymeleaf.layoutdialect.decorators.DecorateProcessor' (template: "pages/products" - line 5, col 7)
internetstore-application-1  | org.thymeleaf.exceptions.TemplateProcessingException: Error during execution of processor 'nz.net.ultraq.thymeleaf.layoutdialect.decorators.DecorateProcessor' (template: "pages/products" - line 5, col 7)
internetstore-application-1  |  at org.thymeleaf.processor.element.AbstractAttributeModelProcessor.doProcess(AbstractAttributeModelProcessor.java:134)
internetstore-application-1  |  at org.thymeleaf.processor.element.AbstractElementModelProcessor.process(AbstractElementModelProcessor.java:98)
internetstore-application-1  |  at org.thymeleaf.util.ProcessorConfigurationUtils$ElementModelProcessorWrapper.process(ProcessorConfigurationUtils.java:649)
internetstore-application-1  |  at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1510)
internetstore-application-1  |  at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205)
internetstore-application-1  |  at org.thymeleaf.engine.Model.process(Model.java:282)
internetstore-application-1  |  at org.thymeleaf.engine.Model.process(Model.java:290)
internetstore-application-1  |  at org.thymeleaf.engine.GatheringModelProcessable.process(GatheringModelProcessable.java:78)
internetstore-application-1  |  at org.thymeleaf.engine.ProcessorTemplateHandler.handleCloseElement(ProcessorTemplateHandler.java:1640)
internetstore-application-1  |  at org.thymeleaf.engine.CloseElementTag.beHandled(CloseElementTag.java:139)
internetstore-application-1  |  at org.thymeleaf.engine.TemplateModel.process(TemplateModel.java:136)
internetstore-application-1  |  at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:661)
internetstore-application-1  |  at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1103)
internetstore-application-1  |  at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1077)
internetstore-application-1  |  at org.thymeleaf.spring6.view.ThymeleafView.renderFragment(ThymeleafView.java:372)
internetstore-application-1  |  at org.thymeleaf.spring6.view.ThymeleafView.render(ThymeleafView.java:192)
internetstore-application-1  |  at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1415)
internetstore-application-1  |  at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1159)
internetstore-application-1  |  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1098)
internetstore-application-1  |  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974)
internetstore-application-1  |  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011)
internetstore-application-1  |  at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
internetstore-application-1  |  at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
internetstore-application-1  |  at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
internetstore-application-1  |  at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
internetstore-application-1  |  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365)
internetstore-application-1  |  at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
internetstore-application-1  |  at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.authentication.ui.DefaultLogoutPageGeneratingFilter.doFilterInternal(DefaultLogoutPageGeneratingFilter.java:58)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:188)
internetstore-application-1  |  at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:174)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:227)
internetstore-application-1  |  at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:221)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter.doFilterInternal(OAuth2AuthorizationRequestRedirectFilter.java:181)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)
internetstore-application-1  |  at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:117)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
internetstore-application-1  |  at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
internetstore-application-1  |  at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
internetstore-application-1  |  at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)
internetstore-application-1  |  at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
internetstore-application-1  |  at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
internetstore-application-1  |  at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
internetstore-application-1  |  at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
internetstore-application-1  |  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
internetstore-application-1  |  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
internetstore-application-1  |  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
internetstore-application-1  |  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
internetstore-application-1  |  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
internetstore-application-1  |  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
internetstore-application-1  |  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
internetstore-application-1  |  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
internetstore-application-1  |  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
internetstore-application-1  |  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)
internetstore-application-1  |  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
internetstore-application-1  |  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
internetstore-application-1  |  at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
internetstore-application-1  |  at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
internetstore-application-1  |  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
internetstore-application-1  |  at java.base/java.lang.Thread.run(Thread.java:833)
internetstore-application-1  | Caused by: groovy.lang.MissingMethodException: No signature of method: org.thymeleaf.context.WebEngineContext.getOrCreate() is applicable for argument types: (String, nz.net.ultraq.thymeleaf.layoutdialect.context.extensions.IContextExtensions$_getPrefixForDialect_closure1) values: [DialectPrefix::org.thymeleaf.standard.StandardDialect, nz.net.ultraq.thymeleaf.layoutdialect.context.extensions.IContextExtensions$_getPrefixForDialect_closure1@1d63ba33]
internetstore-application-1  |  at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:72)
internetstore-application-1  |  at org.codehaus.groovy.vmplugin.v8.IndyGuardsFiltersAndSignatures.unwrap(IndyGuardsFiltersAndSignatures.java:161)
internetstore-application-1  |  at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
internetstore-application-1  |  at nz.net.ultraq.thymeleaf.layoutdialect.context.extensions.IContextExtensions.getPrefixForDialect(IContextExtensions.groovy:54)
internetstore-application-1  |  at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
internetstore-application-1  |  at nz.net.ultraq.thymeleaf.layoutdialect.models.extensions.IProcessableElementTagExtensions.equalsIgnoreXmlnsAndWith(IProcessableElementTagExtensions.groovy:60)
internetstore-application-1  |  at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
internetstore-application-1  |  at nz.net.ultraq.thymeleaf.layoutdialect.decorators.DecorateProcessor.doProcess(DecorateProcessor.groovy:103)
internetstore-application-1  |  at org.thymeleaf.processor.element.AbstractAttributeModelProcessor.doProcess(AbstractAttributeModelProcessor.java:77)
internetstore-application-1  |  ... 107 common frames omitted
internetstore-application-1  | 20:25:36.807 DEBUG o.s.web.servlet.DispatcherServlet - Error rendering view [org.thymeleaf.spring6.view.ThymeleafView@3deb5eb6]
internetstore-application-1  | org.thymeleaf.exceptions.TemplateProcessingException: Error during execution of processor 'nz.net.ultraq.thymeleaf.layoutdialect.decorators.DecorateProcessor' (template: "pages/products" - line 5, col 7)
internetstore-application-1  |  at org.thymeleaf.processor.element.AbstractAttributeModelProcessor.doProcess(AbstractAttributeModelProcessor.java:134)
internetstore-application-1  |  at org.thymeleaf.processor.element.AbstractElementModelProcessor.process(AbstractElementModelProcessor.java:98)
internetstore-application-1  |  at org.thymeleaf.util.ProcessorConfigurationUtils$ElementModelProcessorWrapper.process(ProcessorConfigurationUtils.java:649)
internetstore-application-1  |  at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1510)
internetstore-application-1  |  at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205)
internetstore-application-1  |  at org.thymeleaf.engine.Model.process(Model.java:282)
internetstore-application-1  |  at org.thymeleaf.engine.Model.process(Model.java:290)
internetstore-application-1  |  at org.thymeleaf.engine.GatheringModelProcessable.process(GatheringModelProcessable.java:78)
internetstore-application-1  |  at org.thymeleaf.engine.ProcessorTemplateHandler.handleCloseElement(ProcessorTemplateHandler.java:1640)
internetstore-application-1  |  at org.thymeleaf.engine.CloseElementTag.beHandled(CloseElementTag.java:139)
internetstore-application-1  |  at org.thymeleaf.engine.TemplateModel.process(TemplateModel.java:136)
internetstore-application-1  |  at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:661)
internetstore-application-1  |  at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1103)
internetstore-application-1  |  at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1077)
internetstore-application-1  |  at org.thymeleaf.spring6.view.ThymeleafView.renderFragment(ThymeleafView.java:372)
internetstore-application-1  |  at org.thymeleaf.spring6.view.ThymeleafView.render(ThymeleafView.java:192)
internetstore-application-1  |  at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1415)
internetstore-application-1  |  at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1159)
internetstore-application-1  |  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1098)
internetstore-application-1  |  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974)
internetstore-application-1  |  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011)
internetstore-application-1  |  at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
internetstore-application-1  |  at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
internetstore-application-1  |  at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
internetstore-application-1  |  at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
internetstore-application-1  |  at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365)
internetstore-application-1  |  at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
internetstore-application-1  |  at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.authentication.ui.DefaultLogoutPageGeneratingFilter.doFilterInternal(DefaultLogoutPageGeneratingFilter.java:58)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:188)
internetstore-application-1  |  at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:174)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:227)
internetstore-application-1  |  at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:221)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter.doFilterInternal(OAuth2AuthorizationRequestRedirectFilter.java:181)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)
internetstore-application-1  |  at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:117)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
internetstore-application-1  |  at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
internetstore-application-1  |  at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)
internetstore-application-1  |  at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
internetstore-application-1  |  at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:352)
internetstore-application-1  |  at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:268)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
internetstore-application-1  |  at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
internetstore-application-1  |  at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
internetstore-application-1  |  at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
internetstore-application-1  |  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
internetstore-application-1  |  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
internetstore-application-1  |  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
internetstore-application-1  |  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
internetstore-application-1  |  at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
internetstore-application-1  |  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
internetstore-application-1  |  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
internetstore-application-1  |  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
internetstore-application-1  |  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
internetstore-application-1  |  at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
internetstore-application-1  |  at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
internetstore-application-1  |  at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)
internetstore-application-1  |  at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
internetstore-application-1  |  at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
internetstore-application-1  |  at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
internetstore-application-1  |  at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
internetstore-application-1  |  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
internetstore-application-1  |  at java.base/java.lang.Thread.run(Thread.java:833)
internetstore-application-1  | Caused by: groovy.lang.MissingMethodException: No signature of method: org.thymeleaf.context.WebEngineContext.getOrCreate() is applicable for argument types: (String, nz.net.ultraq.thymeleaf.layoutdialect.context.extensions.IContextExtensions$_getPrefixForDialect_closure1) values: [DialectPrefix::org.thymeleaf.standard.StandardDialect, nz.net.ultraq.thymeleaf.layoutdialect.context.extensions.IContextExtensions$_getPrefixForDialect_closure1@1d63ba33]
internetstore-application-1  |  at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:72)
internetstore-application-1  |  at org.codehaus.groovy.vmplugin.v8.IndyGuardsFiltersAndSignatures.unwrap(IndyGuardsFiltersAndSignatures.java:161)
internetstore-application-1  |  at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
internetstore-application-1  |  at nz.net.ultraq.thymeleaf.layoutdialect.context.extensions.IContextExtensions.getPrefixForDialect(IContextExtensions.groovy:54)
internetstore-application-1  |  at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
internetstore-application-1  |  at nz.net.ultraq.thymeleaf.layoutdialect.models.extensions.IProcessableElementTagExtensions.equalsIgnoreXmlnsAndWith(IProcessableElementTagExtensions.groovy:60)
internetstore-application-1  |  at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
internetstore-application-1  |  at nz.net.ultraq.thymeleaf.layoutdialect.decorators.DecorateProcessor.doProcess(DecorateProcessor.groovy:103)
internetstore-application-1  |  at org.thymeleaf.processor.element.AbstractAttributeModelProcessor.doProcess(AbstractAttributeModelProcessor.java:77)
internetstore-application-1  |  ... 107 common frames omitted
internetstore-application-1  | 20:25:36.809 DEBUG o.s.o.j.s.OpenEntityManagerInViewInterceptor - Closing JPA EntityManager in OpenEntityManagerInViewInterceptor
internetstore-application-1  | 20:25:36.809 DEBUG o.s.web.servlet.DispatcherServlet - Failed to complete request: org.thymeleaf.exceptions.TemplateProcessingException: Error during execution of processor 'nz.net.ultraq.thymeleaf.layoutdialect.decorators.DecorateProcessor' (template: "pages/products" - line 5, col 7)
internetstore-application-1  | 20:25:36.810 ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.thymeleaf.exceptions.TemplateProcessingException: Error during execution of processor 'nz.net.ultraq.thymeleaf.layoutdialect.decorators.DecorateProcessor' (template: "pages/products" - line 5, col 7)] with root cause
internetstore-application-1  | groovy.lang.MissingMethodException: No signature of method: org.thymeleaf.context.WebEngineContext.getOrCreate() is applicable for argument types: (String, nz.net.ultraq.thymeleaf.layoutdialect.context.extensions.IContextExtensions$_getPrefixForDialect_closure1) values: [DialectPrefix::org.thymeleaf.standard.StandardDialect, nz.net.ultraq.thymeleaf.layoutdialect.context.extensions.IContextExtensions$_getPrefixForDialect_closure1@1d63ba33]
internetstore-application-1  |  at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:72)
internetstore-application-1  |  at org.codehaus.groovy.vmplugin.v8.IndyGuardsFiltersAndSignatures.unwrap(IndyGuardsFiltersAndSignatures.java:161)
internetstore-application-1  |  at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
internetstore-application-1  |  at nz.net.ultraq.thymeleaf.layoutdialect.context.extensions.IContextExtensions.getPrefixForDialect(IContextExtensions.groovy:54)
internetstore-application-1  |  at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
internetstore-application-1  |  at nz.net.ultraq.thymeleaf.layoutdialect.models.extensions.IProcessableElementTagExtensions.equalsIgnoreXmlnsAndWith(IProcessableElementTagExtensions.groovy:60)
internetstore-application-1  |  at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
internetstore-application-1  |  at nz.net.ultraq.thymeleaf.layoutdialect.decorators.DecorateProcessor.doProcess(DecorateProcessor.groovy:103)
internetstore-application-1  |  at org.thymeleaf.processor.element.AbstractAttributeModelProcessor.doProcess(AbstractAttributeModelProcessor.java:77)
internetstore-application-1  |  at org.thymeleaf.processor.element.AbstractElementModelProcessor.process(AbstractElementModelProcessor.java:98)
internetstore-application-1  |  at org.thymeleaf.util.ProcessorConfigurationUtils$ElementModelProcessorWrapper.process(ProcessorConfigurationUtils.java:649)
internetstore-application-1  |  at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1510)
internetstore-application-1  |  at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205)
internetstore-application-1  |  at org.thymeleaf.engine.Model.process(Model.java:282)
internetstore-application-1  |  at org.thymeleaf.engine.Model.process(Model.java:290)
internetstore-application-1  |  at org.thymeleaf.engine.GatheringModelProcessable.process(GatheringModelProcessable.java:78)
internetstore-application-1  |  at org.thymeleaf.engine.ProcessorTemplateHandler.handleCloseElement(ProcessorTemplateHandler.java:1640)
internetstore-application-1  |  at org.thymeleaf.engine.CloseElementTag.beHandled(CloseElementTag.java:139)
internetstore-application-1  |  at org.thymeleaf.engine.TemplateModel.process(TemplateModel.java:136)
internetstore-application-1  |  at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:661)
internetstore-application-1  |  at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1103)
internetstore-application-1  |  at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1077)
internetstore-application-1  |  at org.thymeleaf.spring6.view.ThymeleafView.renderFragment(ThymeleafView.java:372)
internetstore-application-1  |  at org.thymeleaf.spring6.view.ThymeleafView.render(ThymeleafView.java:192)
internetstore-application-1  |  at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1415)
Bibi4kovIgor commented 8 months ago

Problem was solved via using of standart spring boot packaging manager instead of maven one

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
ultraq commented 8 months ago

Glad to hear you managed to solve it, and interesting that the Spring Boot Maven plugin without lombok was the solution 👍