Servlet 3.0版本新增注解支持,可是在实际使用中,添加的注解总是不起作用。经过检查,原来是“web.xml”文件的顶级标签“<web-app/>”中的一个叫做“metadata-complete”的属性在作怪。以下摘抄一段对于该属性的描述文字:
Servlet 3.0 的部署描述文件 web.xml 的顶层标签 <web-app> 有一个 metadata-complete 属性,该属性指定当前的部署描述文件是否是完全的。如果设置为 true,则容器在部署时将只依赖部署描述文件,忽略所有的注解(同时也会跳过 web-fragment.xml 的扫描,亦即禁用可插性支持,具体请看后文关于 的讲解);如果不配置该属性,或者将其设置为 false,则表示启用注解支持(和可插性支持)。