Я пытаюсь настроить проект с Spring Boot версии 2.0.5 и простыми лицами без использования web.xml
Я получаю 404 при наборе http://localhost:8080/, но http://localhost:8080/product-list.jsfвозвращает страницу jsf.
похоже, мой контроллер не работает.
pom.xml
xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi: schemaLocation =" http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0
com.auth0.samples пружинные поверхности 1.0-SNAPSHOT jar
пружинные поверхности образец Spring Boot org.springframework.boot spring-boot-starter-parent 2.0.5.RELEASE
org.springframework.boot spring-boot-starter-web
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- JSF Dependency -->
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.2.9</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.9</version>
</dependency>
<!-- Tomcat Embed Dependency -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- Database dependencies --> <dependency>
<groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId>
<version>2.3.4</version> </dependency> <dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId> <version>4.1.2</version>
</dependency> <dependency>
<groupId>org.ocpsoft.rewrite</groupId>
<artifactId>rewrite-servlet</artifactId>
<version>3.4.1.Final</version> </dependency> <dependency>
<groupId>org.ocpsoft.rewrite</groupId>
<artifactId>rewrite-integration-faces</artifactId>
<version>3.4.1.Final</version> </dependency> <dependency>
<groupId>org.ocpsoft.rewrite</groupId>
<artifactId>rewrite-config-prettyfaces</artifactId>
<version>3.4.1.Final</version> </dependency> <dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>6.1</version> </dependency> <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.16</version> </dependency> </dependencies>
src / main / webapp src / main / resources org.springframework.bootПерепаковка Spring-Boot-Maven-плагинов com.auth0.samples.bootfaces.Application
mainClass
@SpringBootApplication
public class Application{
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public ServletRegistrationBean<FacesServlet> facesServletRegistraiton() {
ServletRegistrationBean<FacesServlet> registration = new ServletRegistrationBean<FacesServlet>(new FacesServlet(),
new String[] { "*.jsf" });
registration.setName("Faces Servlet");
registration.setLoadOnStartup(1);
return registration;
}
@Bean
public ServletContextInitializer servletContextInitializer() {
return servletContext -> {
servletContext.setInitParameter("com.sun.faces.forceLoadConfiguration", Boolean.TRUE.toString());
};
}
@Bean
public ServletListenerRegistrationBean<ConfigureListener> jsfConfigureListener() {
return new ServletListenerRegistrationBean<ConfigureListener>(new ConfigureListener());
}
}
Контроллер
@Scope (value = "session")
@Component (value = "productList")
@ELBeanName(value = "productList")
@Join(path = "/", to = "/product-list.jsf")
public class ProductListController {
@Autowired
private ProductRepository productRepository;
private List<Product> products;
@Deferred
@RequestAction
@IgnorePostback
public void loadData() {
products = productRepository.findAll();
}
public List<Product> getProducts() {
return products;
}
}
Я нашел соединения длявесенняя загрузка jsf интеграция, но я не хочу добавлять другую зависимость в проект.
Есть ли способ добиться успеха в любом случае?