2013-08-30 2 views
1

Я использую Servlet 3.0 без какого-либо web.xml, используя Spring WebApplicationInitializer. Когда я запускаю Web-приложение с Run-Jetty-Run в eclipse, JARScanning занимает около 40 секунд, так как он пытается найти аннотации HandlesTypes во всех банках.Run-Jetty-Run (RJR) с Jetty 8 и Servlet 3.0 сканирует все файлы JAR, игнорируя WebInfIncludeJarPattern в jetty-web.xml

Таким образом, я попытался установить WebInfIncludeJarPattern в jetty-web.xml (я также попробовал jetty-context.xml) и поместил его в папку webapp/WEB-INF, как описано в http://wiki.eclipse.org/Jetty/Howto/Avoid_slow_deployment. Я также установил metadata-complete = "true". Содержание файла Пристань-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. В выходных данных отладки я могу видеть, что файл Пристань-web.xml обрабатывается после того как все JARScanning сделано:

ВЫВОД:

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 раньше и только сканировать файлы, указанные там? Или есть ли другой способ в RJR указать, что JARS будет проверяться?

Я использую следующие версии: Eclipse: Kepler Release 4.3 Построение ID: 20130614-0229 RJR: 1.3.3.201301020723 Jetty: 8.1.8.v20121106

WINDOWS: 64 бит

Спасибо

ответ

6

Вот обходной путь для ускорения Jetty 8 с Servlet 3.x.

  1. Создать файл (jetty.xml)
  2. Открыть конфигурацию RJR
  3. Нажмите на кнопку "Показать дополнительные параметры"
  4. Дополнительная jetty.xml:

Файл (Jetty. 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> 

Здесь я говорю g Jetty, что любой файл, начинающийся с mwa-web- *, должен быть отсканирован для Servlet 3.x.

0

Просматривая исходный код RJR я наткнулся на эту незарегистрированной флаг rjrDisableannotation который ускоряет время загрузки значительно во всех Jetty 8/9/9.3.6 (до сих пор я не заметил каких-либо нежелательных побочных эффектов - от как его название предполагает, что он больше не просматривает аннотации).

Он может быть включен как «аргумент VM» в «Конфигурация запуска/отладки» для «Jetty Webapp».

например:

-DrjrDisableannotation=true 

Здесь соответствующий исходный код для справки:

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

+0

Хотя эта ссылка может ответить на этот вопрос, то лучше включить основные части ответа здесь и укажите ссылку для справки.Ответные ссылки могут стать недействительными, если связанная страница изменится. - [От обзора] (/ review/low-quality-posts/16630269) –

+0

спасибо за отзыв, я предоставил более стабильную ссылку на тегированную версию, чтобы уменьшить вероятность стать недействительным – cor3000

Смежные вопросы