2014-12-15 4 views
4

요약 : 언제 내 봄 부팅 응용 프로그램을 켭니다. (임베디드 Tomcat 8 서버에서 실행)봄 부팅 및 PrettyFaces : PrettyFaces로드 중

INFO [org.ocpsoft.rewrite.servlet.RewriteFilter] RewriteFilter starting up... 
... 
INFO [org.ocpsoft.rewrite.servlet.RewriteFilter] Loaded [] org.ocpsoft.rewrite.config.ConfigurationProvider [org.ocpsoft.rewrite.prettyfaces.PrettyFacesRewriteConfigurationProvider<1>] 
INFO [org.ocpsoft.rewrite.servlet.RewriteFilter] RewriteFilter initialized. 

로그 알림. 어떤 이유로 PrettyFaces가 시작되지 않아 그 이유를 모르겠습니다.

기술 : 스프링 부트 1.2.0.RELEASE, Java 8, 종속성 관리를위한 Maven. 임베디드 Tomcat 8.0.15 서버.

가능한 한 Java 구성에 초점을 맞 춥니 다. 이전에 Rewrite를 사용해 보았지만 같은 양의 gruff를주었습니다. 내가 명백한 것을 놓치고있는 것처럼 느껴져.

여기 내 현재 코드베이스에 대한 링크가 있습니다. (그것은, 주요 아무것도 아직 구현되지 단지 새로운 프로젝트를위한 기초 작업, 아주 작은입니다.)

https://github.com/MeisterGit/FoundationServer

메이븐 의존성 :

<dependency> 
    <groupId>com.ocpsoft</groupId> 
    <artifactId>prettyfaces-jsf2</artifactId> 
    <version>3.3.3</version> 
</dependency>` 

다른 메이븐 의존성 시도 :

<!-- PrettyFaces --> 
<dependency> 
    <groupId>org.ocpsoft.rewrite</groupId> 
    <artifactId>rewrite-servlet</artifactId> 
    <version>2.0.12.Final</version> 
</dependency> 
<dependency> 
    <groupId>org.ocpsoft.rewrite</groupId> 
    <artifactId>rewrite-config-prettyfaces</artifactId> 
    <version>2.0.12.Final</version> 
</dependency> 

두 버전 모두 동일한 결과를 산출합니다. 시작 메시지가 없습니다.

저는 XML을 절대 최소로 유지하려고합니다. 나는 얼굴-config로 설정 한 :

<faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
     http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd" 
     version="2.2"> 

    <!-- Allow Spring Beans to be accessible to JSF. --> 
    <application> 
     <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver> 
    </application> 
</faces-config>` 

내 컨트롤러에 의해 topped입니다 :

@Controller 
@URLMapping(id = UserController.INDEX, 
     pattern = "/", 
     viewId = "/content/index.xhtml") // Home page.` 

여기에

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
    http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
    id="foundation-server" 
    version="3.1"> 

<!-- PrettyFaces: Specify which package to scan for @UrlMapping annotations --> 
<context-param> 
    <param-name>com.ocpsoft.pretty.BASE_PACKAGES</param-name> 
    <param-value>foundation</param-value> 
</context-param> 

<!-- No Pretty Filter required, servlet 3.0+ automatically registers the filter. --> 
<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>FORWARD</dispatcher> 
    <dispatcher>REQUEST</dispatcher> 
</filter-mapping> 

어떤 도움 내 web.xml에 무슨 내가 잘못하고있어? 서버가 켜지면 http://localhost:8080/content/index.xhtml이 정상적으로 작동하고 JSF 템플릿이로드됩니다. 스프링 빈이 그것을 백업합니다. . . 그러나 URL 매핑이 작동하지 않습니다. 내가 http://localhost:8080/을 쳤을 때 나는 단지 오류가 난다.

+0

web.xml에 필요한 필터를 수동으로 등록해야합니다. 자동 등록이 어떤 이유로 작동하지 않는 것 같습니다. 이것이 Spring Boot와 관련이 있는지 확실하지 않은가요? – chkal

+0

아래 Andy의 대답을 참조하십시오. 분명히 임베디드 컨테이너로 스프링 부트를 사용할 때,'web.xml'과'web-fragment.xml'은 무시됩니다. –

답변

4

포함 된 컨테이너가있는 스프링 부트를 사용하는 경우 web.xmlweb-fragment.xml은 무시됩니다. 당신은 당신의 응용 프로그램의 Java 구성에서 PrettyFaces 필터를 등록해야합니다 : PrettyFaces 클래스 경로에있는 경우

@Bean 
public FilterRegistrationBean prettyFilter() { 
    FilterRegistrationBean prettyFilter = new FilterRegistrationBean(new PrettyFilter()); 
    prettyFilter.setDispatcherTypes(DispatcherType.FORWARD, DispatcherType.REQUEST, 
      DispatcherType.ASYNC, DispatcherType.ERROR); 
    prettyFilter.addUrlPatterns("/*"); 
    return prettyFilter; 
} 

봄 부팅이 자동으로 구성하는 방법에 대한이 필터를 개선 할 수있다. 이러한 개선 사항을 보려면 open an issue을 클릭하십시오.

+0

안녕하세요! 고마워. 나는 그 파일들이 무시되었다는 것을 몰랐다. 제안 된 bean을 내 구성에 추가하는 것은 매력처럼 작동했습니다. 이제 스프링 보안 필터 구성을 수정해야합니다.이 구성은'web.xml' 파일에도 정의되어 있습니다. –