这是自 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>