2014-02-17 2 views
1

저는 Jetty와 Wildfly 사이의 필터 초기화 구현에 차이점을 발견했다고 생각합니다.Wildfly "Lazy-Inits"필터를 변경할 수 있습니까?

저는 Tapestry, Spring 및 Hibernate를 사용하는 웹 애플리케이션입니다. Jetty에서 Wildfly로 마이그레이션하려고합니다.

내 web.xml 파일은 두 개의 필터가 있습니다

첫째 (doInternalFilter이 실행될 때 존재하는의 WebApplicationContext를 필요로)를 OpenSessionInViewFilter. 이 필터는 최대 절전 모드 세션이 백엔드 데이터베이스에 대한 모든 Tapestry 활동을 포함하도록 Tapestry 이전에 있어야합니다.

그 다음으로 Tapestry 프레임 워크 (스프링 통합 포함) 필터 init 메서드는 스프링의 WebApplicationContext를로드합니다.

Jetty (Tomcat)에서도 문제없이이 시나리오를 실행했지만 Wildfly로 이동할 때 OpenSessionInViewFilter는 WebApplicationContext가 발견되지 않았다는 IllegalStateException을 던졌습니다.

디버깅을 시도했지만 Wildfly가 init 필터를 호출하지 않는 것을 발견했습니다. 필터는 처리 할 첫 번째 요청을 수신합니다. 나는 이것이 특정 시나리오에서 성능 향상이 될 수 있다는 것에 동의하지만 현재 시나리오에서는 문제입니다.

응용 프로그램을 시작할 때 Wildfly에 초기화 필터를 적용 할 수있는 방법이 있습니까?

감사합니다.

+1

우리는 wildfly/undertow에 추가 할 수있는 멋진 기능을 제공합니다.이 기능을 사용하여 jira를 만들 수 있습니까? https://issues.jboss.org/browse/WFLY – ctomc

+0

물론 소스 코드를 변경하지 않는 한 이렇게 할 수 없다는 것을 말하고 있습니다 : D 그래서 제안대로 JIRA를 추가 할 것입니다. 원하는 경우 "불가능합니다. 그냥 JIRA를 채우십시오"라는 대답을 추가 할 수 있습니다. 올바른 답으로 표시 할 것입니다. 감사! –

+0

이미 JIRA를 채웠습니다. 링크는 다음과 같습니다. https://issues.jboss.org/browse/WFLY-3028 –

답변

3

아래 서브 시스템의 구성 옵션을 통해이 기능을 제공하는 pull request을 보냈습니다.

당신은 지금

<servlet-container name="default" eager-filter-initialization="true"> 

이 가능하도록 추가 할 수 있습니다.

+0

Thank You !! 당신은 답을 제공 할뿐만 아니라 해결책을 제공했습니다. 다시 한 번 감사드립니다. –

관련 문제