4

类似于问题 Jetty startup delay the startup time for a Jetty 8.1.2 raises 随着 WEB-INF/lib 目录中依赖项数量的增加。(20mb ~60 到 90 秒)

启用 DEBUG 后(-Dorg.eclipse.jetty.LEVEL=DEBUG,另请参阅此 Answer Enable Jetty DEBUG),输出中大量出现以下行:

2012-04-27 11:13:38.095:DBUG:oeju.Scanner:scanned [/home/.../workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmpX/webapps]: {}
4

1 回答 1

8

这是自 Servlet-API 2.5 以来的正常过程,它正在所有类和罐子中寻找与 Servlet 相关的注释。通常可以使用 web.xml 中的“元数据完成”选项来避免这种情况:

<web-app metadata-complete="true" ...>

在 Jetty 8.1.2 中,这被 AnntionConfiguration 类识别为由于启动,但扫描过程无论如何都会发生。这是一个已知的 ISSUE Jetty 8.1.2 扫描类路径上的所有类,如果类路径上有 >= 1xServletContainerInitializer 和 HandlesTypes,则不管Jetty 8.1.2 的 metadata-complete="true"。

一种解决方法是使用一种模式来限制将包含在扫描过程中的 JAR 文件。例如,在 Eclipse 中,您可以将以下代码段附加到“/home/.../workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmpX/contexts/appname”中的“jetty-context.xml” .xml”文件:

<Call name="setAttribute">
    <Arg>org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern</Arg>
    <Arg>.*/.*myPrefixedJarToScan1-[^/]\.jar$|.*/.*myPrefixedJarToScan2-[^/]\.jar$</Arg>
</Call>
于 2012-05-02T07:19:36.757 回答