Spring Error loading Thymeleaf Boot subdirectory using jar

My Spring Boot application works fine in Eclipse and runs from the gradle on the command line. However, it is not possible to load a fragment from a subdirectory when starting from java -jar ....

Using the default settings, Spring Boot and Thymeleaf and gradle.

Folder structure

src/main/resources/
---templates/
      ---homepages/
           ---homepage
           ---head

I tried an explicit view resolver for Timeleaf. Bad luck.

causing the problem.

<head th:include="/homepages/head"></head>

error starting from jar

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.
Fri May 16 18:54:44 EDT 2014
There was an unexpected error (type=Internal Server Error, status=500).
Error resolving template "/homepages/head", template might not exist or might not be accessible by any of the configured Template Resolvers (homepages/homepage:5)

Using the default setting for Spring Boot.

buildscript {
    repositories {
        maven { url "http://repo.spring.io/libs-snapshot" }
        mavenLocal()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.0.2.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'

jar {
    baseName = 'base-app'
    version =  '0.1.0'
}

repositories {
    mavenCentral()
    maven { url "http://repo.spring.io/libs-snapshot" }
    maven { url "https://repository.jboss.org/nexus/content/repositories/releases" }
}


dependencies {
    compile("org.springframework.boot:spring-boot-starter-web") {
    }
    compile("org.springframework.boot:spring-boot-starter-security")
    compile("org.thymeleaf:thymeleaf-spring4")
    testCompile("junit:junit")

    compile("org.springframework.boot:spring-boot-starter-data-jpa")
    compile("org.springframework.boot:spring-boot-starter-jdbc")
    compile("org.postgresql:postgresql:9.2-1004-jdbc4")
    compile("org.hibernate:hibernate-validator")
    compile('org.hibernate:hibernate-entitymanager:4.0.1.Final')
    compile("org.springframework:spring-tx")
    compile("org.springframework.boot:spring-boot-starter-actuator")

}

task wrapper(type: Wrapper) {
    gradleVersion = '1.11'
}
+4
source share
1 answer

Pattern paths usually do not start with "/". Try removing this from your include path.

+2

Source: https://habr.com/ru/post/1540921/


All Articles