新建一个web工程添加了struts,什么都没写部署得时候tomcat出错,myEclipse5+tomcat4+jdk1.4严重: Parse Error at line 2 column -1: 组件类型“web-app”未被声明。
org.xml.sax.SAXParseException: 组件类型“web-app”未被声明。<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>

解决方案 »

  1.   

    确认是否部署方式引起的问题
    确认是不是xml申明的命名空间或xsd引起的
    确认xml文件本身没有问题,可以使用xmlspy的格式化内容,去除某些多余的字符(google相关)
    确认是否有xml解析器引起的问题
      

  2.   

    我个人感觉是
    <web-app   xmlns= "http://java.sun.com/xml/ns/j2ee "   
    xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance "   version= "2.4 "   
    xsi:schemaLocation= "http://java.sun.com/xml/ns/j2ee       http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd "> 
    的问题,你去tomcat中能找到个web.xml文件,你把那个头拷过来试试.