Spring Boot (jar) + JSF без web.xml - PullRequest
       0

Spring Boot (jar) + JSF без web.xml

0 голосов
/ 25 октября 2018

Я пытаюсь настроить проект с 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 интеграция, но я не хочу добавлять другую зависимость в проект.

Есть ли способ добиться успеха в любом случае?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...