今天更新别人代码后,发现之前写的servlet调用不通了
然后发现web.xml里的头加了一个metadata-complete="true"属性
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID"
version="3.0" metadata-complete="true">
在网上查了下,发现
metadata-complete="true",会在启动时不扫描注解(annotation)。如果不扫描注解的话,用注解进行的配置就无法生效,例如:@WebServlet
代码都是@WebServlet这样写的,所以请求不到了
至于metadata-complete属性及相关的说明请看
https://www.ibm.com/developerworks/cn/java/j-lo-servlet30/
本文介绍了一个在web.xml中可能导致servlet无法被调用的问题。问题出现的原因是在web应用配置文件中添加了metadata-complete=true属性,这会导致服务器启动时不扫描注解,使得通过注解配置的servlet失效。
2268

被折叠的 条评论
为什么被折叠?



