2014-11-14 5 views
9

배경 및 설정 정보 : 이클립스 부두 플러그인 봄 보안 3.2.3 부두 시동 지연으로 인해 스캐닝

  • 봄 자바 구성과
  • 봄 4.1.1.RELEASE와

    • 부두 (9) (더 web.xml에 없음)

    문제 설명 시작 부두가 9 인 매우 web.xml을 사용하는 대신 Spring의 JavaConfig를 사용하여 Spring 컨텍스트를 부팅하는 프로젝트에서 느리다. 부두는 사려 깊은 시간 동안 아무 것도하지 않는 것 같습니다.

    INFO:oejs.Server:main: jetty-9.2.3.v20140905

    부두 결국 시작 않지만, 정기적 바람둥이 7 유통에 비해 시작이 매우 오래 걸립니다 :이 라인 이후에 발생합니다.


    추가 리소스

    public class DispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {  
        //implementation 
        } 
    
  • 답변

    18

    이 순서에 주석의 WEB-INF 폴더에있는 부두 9 스캔 모든 항아리는 웹 컨텍스트를 시작하기 때문이다. 이 문제에 대한 해결책을 찾으려한다면 이미 그 사실을 발견했을 것입니다. 나는 여러 가지 해답을 시도했지만 그 중 올바른 해결책을 찾지 못했습니다.

    가능한 한 이러한 검색을 제거하기 위해 검색 할 소스와 검색하지 않을 데이터를 Jetty에 알려주는 패턴을 정의 할 수 있습니다. 이것은 maven의 일부 설정을 설정하거나 jetty-context.xml에 속성을 설정하여 수행됩니다. (당신이 받는다는 플러그인을 사용하는 경우에 부두의 jetty-context.xml도를 설정해야합니다 귀하의 pom.xml)

    나를 위해 일하지 않은 일부 다른 솔루션 (시작 시간의 증가없이 또는 전혀 올바른 시동 중)

    Jetty 8.1.2 startup delay jetty8 with maven plugin takes to long to start

    올바른 용액 또한 jetty-context.xml를 사용하여 수행하지만, 다른 패턴이다. Spring 애플리케이션에서, 우리는 Spring jar를 스캔 할 필요가있다. 의존성이 많은 경우, 이것만으로도 이미 큰 도움이 될 것이다. 대신에 spring-web 항아리 만 스캔하면 더 좋습니다. Spring Security가 있다면, 그 jar를 포함시켜야 할 수도 있습니다. 이와 같이

    , 나에게 최대의 속도 향상을 준 패턴이 여기에 표시됩니다 :

    <?xml version="1.0"?> 
    <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd"> 
    
    <Configure class="org.eclipse.jetty.webapp.WebAppContext"> 
    
        <Call name="setAttribute"> 
         <Arg>org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern</Arg> 
         <Arg>.*/spring-security[^/]*\.jar$|.*/spring-web[^/]*\.jar$|.*/classes/.*</Arg> 
        </Call> 
    
    </Configure> 
    

    우리는 정규식 패턴을 포함하지 않는 WEB-INF 우리 classes 폴더에없는 것도,뿐만 아니라 단지를 제외 주어진.

    희망이 있으면 도움이됩니다.

    +0

    Jetty 9.2.x에는 빌드/컴파일시에 스캔을 할 수있는'quickstart' 모듈이있어'jetty-quickstart.xml' 파일을 war 파일에서 찾아내어 생산 시작을 초 단위로합니다. –

    +0

    정말 멋지다. 나는 그것을하는 방법의 예를 찾으려고 노력할 것입니다, 그래서 저는 이것을이 답안에 추가 할 수 있습니다. 또는 당신이 답안을 가지고 있다면 당신 자신의 것을 제출할 수 있습니다 :). 감사! – froginvasion

    +0

    어떤 솔루션을 사용해도 큰 차이는 보이지 않습니다. –