Это моя структура проекта (MWE):
.
├── build.gradle
└── src
├── main
│ └── java
│ └── af
│ └── aps
│ ├── Application.java
│ └── config
│ └── MVCConfig.java
└── public
└── index.html
build.gradle
ext.appVersion = '0.0.1'
buildscript {
ext.springBootVersion = '2.0.4.RELEASE'
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'war'
repositories {
mavenCentral()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile('org.springframework.boot:spring-boot-starter-web') // mvc
// compile group: 'com.sun.faces', name: 'jsf-api', version: '2.2.18'
// compile group: 'com.sun.faces', name: 'jsf-impl', version: '2.2.18'
}
Application.java
package app;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
MVCConfig.java
package app.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MVCConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**")
.addResourceLocations("file:/home/hamid/workspace/java/app/src/public/")
.setCachePeriod(0);
}
}
index.html
<!DOCTYPE html>
<html>
<head>
<title>Home page</title>
</head>
<body>The home page</body>
</html>
Я пытаюсь обслуживать статические ресурсы из файловой системы. Это работает. Я вижу домашнюю страницу, и когда я изменяю ее и обновляю браузер, я вижу изменения, но когда я добавляю библиотеки JSF в свой проект, я получаю ошибку 404, что статические ресурсы не могут быть найдены. Я гуглил все, что мог, и искал документы, но не могу понять, что не так.