读书人

一个S2SH整合启动错误的有关问题

发布时间: 2012-04-06 12:22:24 作者: rapoo

一个S2SH整合启动异常的问题
我用S2SH整合一个注册的程序,但一启动tomcat就出现异常,这是为什么呢,查了很多资料,都说是缺少包啊,或者是struts2.xml配置问题啊,但我都试过了还是一样,所以还要请教大家。
下面是我已启动tomcat的时候报的异常

Java code
16:06:50,130 ERROR Dispatcher:38 - Dispatcher initialization failedUnable to load configuration. - action - file:/C:/Program%20Files/ApacheSoftwareFoundation/Tomcat7.0/webapps/testWeb/WEB-INF/classes/struts.xml:32:42    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69)    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:380)    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:424)    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273)    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254)    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4461)    at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5133)    at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5128)    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)    at java.util.concurrent.FutureTask.run(FutureTask.java:166)    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)    at java.lang.Thread.run(Thread.java:717)Caused by: Action class [Regist] not found - action - file:/C:/Program%20Files/ApacheSoftwareFoundation/Tomcat7.0/webapps/testWeb/WEB-INF/classes/struts.xml:32:42    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:420)    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:365)    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:479)    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:275)    at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:204)    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)    ... 16 more2011-10-5 16:06:50 org.apache.catalina.core.StandardContext filterStart严重: Exception starting filter struts2Unable to load configuration. - action - file:/C:/Program%20Files/ApacheSoftwareFoundation/Tomcat7.0/webapps/testWeb/WEB-INF/classes/struts.xml:32:42    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:437)    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)    at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273)    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254)    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4461)    at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5133)    at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5128)    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)    at java.util.concurrent.FutureTask.run(FutureTask.java:166)    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)    at java.lang.Thread.run(Thread.java:717)Caused by: Unable to load configuration. - action - file:/C:/Program%20Files/ApacheSoftwareFoundation/Tomcat7.0/webapps/testWeb/WEB-INF/classes/struts.xml:32:42    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:69)    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:380)    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:424)    ... 14 moreCaused by: Action class [Regist] not found - action - file:/C:/Program%20Files/ApacheSoftwareFoundation/Tomcat7.0/webapps/testWeb/WEB-INF/classes/struts.xml:32:42    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:420)    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:365)    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:479)    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:275)    at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:204)    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)    ... 16 more2011-10-5 16:06:50 org.apache.catalina.core.StandardContext startInternal严重: Error filterStart2011-10-5 16:06:50 org.apache.catalina.core.StandardContext startInternal严重: Context [/testWeb] startup failed due to previous errors2011-10-5 16:06:50 org.apache.catalina.core.ApplicationContext log信息: Closing Spring root WebApplicationContext2011-10-5 16:06:50 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc严重: The web application [/testWeb] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.2011-10-5 16:06:50 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads严重: The web application [/testWeb] appears to have started a thread named [MySQL Statement Cancellation Timer] but has failed to stop it. This is very likely to create a memory leak.2011-10-5 16:06:50 org.apache.coyote.AbstractProtocolHandler start信息: Starting ProtocolHandler ["http-apr-8080"]2011-10-5 16:06:50 org.apache.coyote.AbstractProtocolHandler start信息: Starting ProtocolHandler ["ajp-apr-8009"]2011-10-5 16:06:50 org.apache.catalina.startup.Catalina start信息: Server startup in 21720 ms 



下面是我的struts.xml配置文件
XML code
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"    "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>    <constant name="struts.devMode" value="false" />    <package name="default" namespace="/my" extends="struts-default">        <action name="regist" class="Regist">            <result name="success">/regist.jsp</result>        </action>    </package></struts>

下面是我的spring配置文件
XML code
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">    <property name="configLocation">        <value>classpath:hibernate.cfg.xml</value>    </property>    </bean>        <bean id="userDAOImpl" class="dao.UserDAOImpl">        <property name="sessionFactory">            <ref local="sessionFactory"/>        </property>    </bean>        <bean id="userService" class="service.UserServiceImpl2">        <property name="userDAO">            <ref local="userDAOImpl"/>        </property>    </bean>        <bean id="Regist" class="action.Regist">        <property name="userService">            <ref local="userService"/>        </property>    </bean>


下面是我的web配置文件:
XML code
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"     xmlns="http://java.sun.com/xml/ns/j2ee"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">    <filter>        <filter-name>struts2</filter-name>        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter        </filter-class>    </filter>        <filter-mapping>        <filter-name>struts2</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>        <listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener>        <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>/WEB-INF/classes/applicationContext.xml</param-value>    </context-param>      <welcome-file-list>    <welcome-file>regist.jsp</welcome-file>  </welcome-file-list></web-app>

大家帮我看看是怎么回事

[解决办法]
/C:/Program%20Files/ApacheSoftwareFoundation/Tomcat7.0/webapps/testWeb/WEB-INF/classes/struts.xml

加载这个文件失败,Program%20Files你这个空格变成了%20,你把空格去掉应该可以
[解决办法]
struts.xml:32:42

我怎么看楼主那个struts.xml都没有32行啊。
是不是没有发全啊。
[解决办法]
如果你用Spring来管理Action。
class则配置为bean的id属性,这样struts会在Spring中去查找相关的对象。
------解决方案--------------------


原因就是如果你不配置在Spring中,Spring没有办法给你管理对象。
无—I,无法AOP,就是这样。

读书人网 >J2EE开发

热点推荐