struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
  <data-sources />
  <form-beans>
   <form-bean name="loginForm" type="com.demo.struts.forms.LoginForm">
   </form-bean>
  </form-beans>
  <global-exceptions />
  <global-forwards />
  <action-mappings>
   <action path="/index" forward="/login.jsp" />
<action path="/login" name="loginForm" scope="request"
type="com.demo.struts.actions.LoginAction" input="/login.jsp">
<forward name="success" path="/welcome.jsp" />
<forward name="failure" path="/login.jsp" />
</action>
  </action-mappings>
  <message-resources parameter="com.demo.struts.ApplicationResources" />
</struts-config>没加<form-bean name="loginForm" type="com.demo.struts.forms.LoginForm"></form-bean>之前,tomcat正常启动,structs正常
加了之后,启动tomcat出现如下错误,structs不能用:
org.apache.catalina.core.StandardContext loadOnStartup
严重: Servlet /demo threw load() exception
javax.servlet.UnavailableException: Parsing error processing resource path /WEB-INF/struts-config.xml
at org.apache.struts.action.ActionServlet.handleConfigException(ActionServlet.java:769)
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:745)
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:687)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:333)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)这是为什么呢?--!(form-bean type路径正确)

解决方案 »

  1.   

    Parsing error processing resource path /WEB-INF/struts-config.xml com.demo.struts.forms.LoginForm
    这个存在么,区分大小写,
      

  2.   

    LoginForm.java
    package com.demo.struts.forms;没有问题啊
      

  3.   

    name="loginForm" 与其他是否同名冲突,换个名称看看,另外Parsing error processing resource path /WEB-INF/struts-config.xml 在路径无错的情况下,还可能与jdk版本或struts版本有关,更换版本尝试,
      

  4.   

    可能主要是commons-collections.jar包冲突,把新传的那个jar包拷贝到lib下替换掉原来的即可。 
    如果再报下面的错误: 
    ERROR [org.hibernate.proxy.BasicLazyInitializer] - CGLIB Enhancement failed: dao.User 
    java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V 
    at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77) 
    则是: 
    Spring 和 Hibernate 共用的一些 jar 文件发生了版本冲突, 删除 WEB-INF/lib/asm-2.2.3.jar即可
      

  5.   

    谢谢heavenfeng ,果然是jdk版本的关系
    我java用的是jdk6.0,而tomcat用的是myeclipse自带的jkd5.0,把tomcat的jre改成jdk6.0就解决了不过之后在配置DBCP连接池的时候又碰到了问题,加分求解struts-config.xml 
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
      <data-sources>
    <data-source type="org.apache.commons.dbcp.BasicDataSource">
    <set-property property="driverClassName"
    value="org.gjt.mm.mysql.Driver" />
    <set-property property="url"
    value="jdbc:mysql://localhost:3306/demo" />
    <set-property property="username" value="root" />
    <set-property property="password" value="00000000" />
    <set-property property="maxActive" value="10" />
    <set-property property="maxWait" value="5000" />
    <set-property property="defaultAutoCommit" value="false" />
    <set-property property="defaultReadOnly" value="false" />
    <set-property property="validationQuery"
    value="SELECT COUNT(*) FROM user" />
    </data-source>
      </data-sources>
    ……这个时候出现的问题是:org.apache.catalina.core.StandardContext loadOnStartup
    严重: Servlet /demo threw load() exception
    javax.servlet.UnavailableException: Initializing application data source org.apache.struts.action.DATA_SOURCE
    at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:812)
    at org.apache.struts.action.ActionServlet.init(ActionServlet.java:335)
    at javax.servlet.GenericServlet.init(GenericServlet.java:212)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)这是怎么回事呢?
      

  6.   

    [code=XML]<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
      <data-sources>
    <data-source type="org.apache.commons.dbcp.BasicDataSource">
    <set-property property="driverClassName"
    value="org.gjt.mm.mysql.Driver" />
    <set-property property="url"
    value="jdbc:mysql://localhost:3306/demo" />
    <set-property property="username" value="root" />
    <set-property property="password" value="00000000" />
    <set-property property="maxActive" value="10" />
    <set-property property="maxWait" value="5000" />
    <set-property property="defaultAutoCommit" value="false" />
    <set-property property="defaultReadOnly" value="false" />
    <set-property property="validationQuery"
    value="SELECT COUNT(*) FROM user" />
    </data-source>
      </data-sources>
      <form-beans>
       <form-bean name="loginForm" 
       type="com.demo.struts.forms.LoginForm">
       </form-bean>
       <form-bean name="registerForm"
    type="com.demo.struts.forms.RegisterForm">
    </form-bean>
      </form-beans>
      <global-exceptions />
      <global-forwards />
      <action-mappings>
       <action path="/index" forward="/login.jsp" />
      
    <action path="/login" name="loginForm" scope="request"
    type="com.demo.struts.actions.LoginAction" input="/login.jsp">
    <forward name="success" path="/welcome.jsp" />
    <forward name="failure" path="/login.jsp" />
    </action>

    <action path="/logout"
    type="com.demo.struts.actions.LogoutAction">
    <forward name="logout" path="/login.jsp" />
    </action>

    <action path="/register" parameter="method" name="registerForm"
    scope="request" type="com.demo.struts.actions.RegisterAction"
    input="/register.jsp">
    <forward name="success" path="/login.jsp" />
    <forward name="failure" path="/register.jsp" />
    </action>

      </action-mappings>
      <message-resources parameter="com.demo.struts.ApplicationResources" />
    </struts-config>code]