前缀" xsi" for attribute" xsi:schemaLocation"与元素类型相关联" web-app"没有约束

时间:2018-04-03 09:20:04

标签: java eclipse maven tomcat deployment

启动tomcat时出现错误:

  

javax.servlet.UnavailableException:org.xml.sax.SAXParseException:前缀" xsi" for attribute" xsi:schemaLocation"与元素类型相关联" web-app"不受约束。

我正在尝试将我的Java(Maven Based)项目部署到我的Tomcat 8服务器上并启动它。清理完所有项目并构建工作区后;删除每个项目上的所有构建路径错误后。当我尝试在tomcat中部署项目并启动它时,我得到以下错误:

    Apr 02, 2018 1:29:22 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet [action] in web application [/bss] threw load() exception
javax.servlet.UnavailableException: org.xml.sax.SAXParseException: The prefix "xsi" for attribute "xsi:schemaLocation" associated with an element type "web-app" is not bound.
    at org.apache.struts.action.ActionServlet.init(ActionServlet.java:402)
    at javax.servlet.GenericServlet.init(GenericServlet.java:158)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1227)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1140)

我不确定是什么导致了这个问题,哪个jar完全没有,这将解决这个问题。

1 个答案:

答案 0 :(得分:0)

您很可能错过了xsi文件中web.xml命名空间的声明。将xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"添加到web-app元素。例如:

<web-app
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   version="2.5">
   <!-- ... -->
</web-app>