2013-08-30 3 views
1

Spring WebApplicationInitializer를 사용하는 web.xml없이 Servlet 3.0을 사용하고 있습니다. 이클립스에서 Run-Jetty-Run으로 웹 애플리케이션을 시작할 때 JARScanning은 모든 병에서 HandlesTypes 주석을 찾으려고 약 40 초가 걸린다.Jetty 8 및 Servlet 3.0이 설치된 Run-Jetty-Run (RJR)은 jetty-web.xml의 WebInfIncludeJarPattern을 무시한 모든 JAR 파일을 스캔합니다.

그래서 jetty-web.xml (나는 jetty-context.xml도 시도했다)에 WebInfIncludeJarPattern을 설정하고 http://wiki.eclipse.org/Jetty/Howto/Avoid_slow_deployment에 설명 된대로 webapp/WEB-INF 폴더에 넣으려고했다. 나는 또한 metadata-complete = "true"를 설정했다. jetty-web.xml 파일의 내용은 다음과 같습니다.

<Configure class="org.eclipse.jetty.webapp.WebAppContext"> 
    <Call name="setAttribute"> 
     <Arg>org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern</Arg> 
     <Arg>.*/.*foo-api-[^/]\.jar$|./.*bar-[^/]\.jar$|./.*wibble[^/]*\.jar$</Arg> 
    </Call> 
</Configure> 

그러나 JarScanner는 모든 JAR 파일을 계속 검사합니다. 디버그 출력에서 ​​나는 모든 JARScanning이 완료되면 부두-web.xml 파일을 구문 분석되는 것을 볼 수 있습니다 :

출력 :

2013-08-30 09:09:52.836:DBUG:oejw.WebAppContext:preConfigure o.e.j.w.WebAppContext{/admin2,[file:/C:/....../src/main/webapp/]} with [email protected] 
...... 
2013-08-30 09:09:52.979:DBUG:oejw.WebAppContext:preConfigure o.e.j.w.WebAppContext{/admin2,[file:/C:/..../src/main/webapp/]} with [email protected] 
2013-08-30 09:09:53.076:DBUG:oejw.WebDescriptor:file:/C:/......../src/main/webapp/WEB-INF/web.xml: Calculated metadatacomplete = True with version=3.0 
2013-08-30 09:09:53.076:DBUG:oejw.WebAppContext:preConfigure o.e.j.w.WebAppContext{/admin2,[file:/C:/....../src/main/webapp/]} with [email protected] 
... <LOTS OF JARSCANNING> 
2013-08-30 09:10:36.677:DBUG:oejw.JarScanner:Search of file:/C:/......./httpclient-cache-4.1.2.jar 
2013-08-30 09:10:36.710:DBUG:oejw.WebAppContext:configure o.e.j.w.WebAppContext{/.................} with [email protected] 
2013-08-30 09:10:36.711:DBUG:oejw.JettyWebXmlConfiguration:Configuring web-jetty.xml 
2013-08-30 09:10:36.715:DBUG:oejw.JettyWebXmlConfiguration:Configure: file:/C:/......./src/main/webapp/WEB-INF/jetty-web.xml 

가 어떻게 부두 - 웹을 데리러 RJR을 강제 할 수 .xml 앞에서 지정한 파일 만 스캔합니까? 아니면 스캔 할 JARS를 지정하기 위해 RJR에 다른 방법이 있습니까? 이클립스 : 케플러 릴리스 4.3 빌드 ID : 20130614-0229 RJR : 1.3.3.201301020723 부두 : 8.1.8.v20121106

WINDOWS :

내가 다음 버전 사용하고 64 비트를

당신에게

답변

6
감사

다음은 Servlet 3.x로 Jetty 8의 속도를 높이는 방법입니다.

  1. 추가 jetty.xml의 "표시 옵션 고급"에있는 파일 (jetty.xml의)
  2. 열고 RJR 구성
  3. 클릭 만들기 :

파일 (부두. xml)에는 다음 줄이 있어야합니다.

<Configure id="Server" class="org.eclipse.jetty.server.Server"> 
    <Get name="handler"> 
    <Call name="setAttribute"> 
     <Arg>org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern</Arg> 
     <Arg>.*/mwa-web-.*\.jar$</Arg> 
    </Call> 
    </Get> 
</Configure> 

여기에서 나는 tellin gwait mwa-web- *로 시작하는 모든 파일은 Servlet 3.x에서 스캔해야합니다. 나는 모든 부두에서 크게 시작 시간을 가속화이 문서화되지 않은 플래그 rjrDisableannotation를 통해 제공된 RJR의 소스 코드를 찾고

0

는 8/9/9.3.6 (지금까지 내가 원치 않는 부작용을 발견하지 않았습니다 -의 코스 이름에서 알 수 있듯이 더 이상 특수 효과를 검색하지 않음).

"Jetty Webapp"의 경우 "Run/Debug configuration"에서 "VM argument"로 활성화 할 수 있습니다.

예 : 여기

-DrjrDisableannotation=true 

참조 할 수 있도록 관련 소스 코드 :이 링크는 질문에 대답 수 있지만

https://github.com/xzer/run-jetty-run/blob/rjr1.3.4/Jetty8Support/plugin-jetty8/bootstrap/runjettyrun/Configs.java#L210-L212

+0

, 여기에 해답의 본질적인 부분을 포함하는 것이 좋습니다 및 참조 용 링크를 제공하십시오.링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. - [리뷰에서] (리뷰/저품절 포스트/16630269) –

+0

피드백 덕분에 무효화 될 가능성을 줄이기 위해 태그가 추가 된 버전에 대한보다 안정적인 링크를 제공했습니다. – cor3000