我用SSH写的一个小项目,其中tomcat 7.0在启动时报告异常!如下:
2011-7-29 12:47:10 org.apache.catalina.core.AprLifecycleListener init
信息: Loaded APR based Apache Tomcat Native library 1.1.20.
2011-7-29 12:47:10 org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
2011-7-29 12:47:11 org.apache.coyote.AbstractProtocolHandler init
信息: Initializing ProtocolHandler ["http-apr-8090"]
2011-7-29 12:47:11 org.apache.coyote.AbstractProtocolHandler init
信息: Initializing ProtocolHandler ["ajp-apr-8009"]
2011-7-29 12:47:11 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1261 ms
2011-7-29 12:47:11 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
2011-7-29 12:47:11 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.12
2011-7-29 12:47:11 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory ROOT
2011-7-29 12:47:12 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory shortanswer_5_2
2011-7-29 12:47:12 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
2011-7-29 12:47:15 org.apache.catalina.core.StandardContext listenerStart

严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bookDaoImpl' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4701)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5204)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5199)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required
at org.springframework.orm.hibernate3.support.HibernateDaoSupport.checkDaoConfig(HibernateDaoSupport.java:117)
at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
... 23 more
2011-7-29 12:47:15 org.apache.catalina.core.StandardContext startInternal
严重: Error listenerStart
2011-7-29 12:47:15 org.apache.catalina.core.StandardContext startInternal
严重: Context [/shortanswer_5_2] startup failed due to previous errors
2011-7-29 12:47:15 org.apache.catalina.core.ApplicationContext log
信息: Closing Spring root WebApplicationContext
2011-7-29 12:47:15 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
严重: The web application [/shortanswer_5_2] registered the JDBC driver [oracle.jdbc.driver.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
2011-7-29 12:47:15 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
严重: The web application [/shortanswer_5_2] appears to have started a thread named [Timer-0] but has failed to stop it. This is very likely to create a memory leak.

2011-7-29 12:47:15 org.apache.coyote.AbstractProtocolHandler start
信息: Starting ProtocolHandler ["http-apr-8090"]
2011-7-29 12:47:15 org.apache.coyote.AbstractProtocolHandler start
信息: Starting ProtocolHandler ["ajp-apr-8009"]
2011-7-29 12:47:15 org.apache.catalina.startup.Catalina start
信息: Server startup in 3530 ms
applicationContext.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:XE" />
<property name="username" value="csdn" />
<property name="password" value="good" />
<property name="defaultAutoCommit" value="true" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="connection.useUnicode">true</prop>
<prop key="connection.characterEncoding">utf-8</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>dto/Book.hbm.xml</value>
</list>
</property>
</bean>
<bean id="bookDaoImpl" class="dao.impl.BookDaoImpl" /><!--貌似这里错误-->
<bean id="indexBizImpl" class="biz.impl.IndexBizImpl">
<property name="bookDao" ref="bookDaoImpl" />
</bean>
<bean id="addBizImpl" class="biz.impl.AddBizImpl">
<property name="bookDao" ref="bookDaoImpl" />
</bean>
<bean id="bookAction" class="action.BookAction">
<property name="indexBizImpl" ref="indexBizImpl" />
<property name="addBizImpl" ref="addBizImpl" />
</bean>
</beans>
biz.impl.IndexBizImpl代码如下:
public class IndexBizImpl implements IndexBiz{
private BookDao bookDao;

public BookDao getBookDao() {
return bookDao;
} public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
}
biz.impl.AddBizImpl代码如下:
public class AddBizImpl implements AddBiz{
private BookDao bookDao;

public BookDao getBookDao() {
return bookDao;
} public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
}
纠结一上午了,请大家帮忙看看谢谢!

解决方案 »

  1.   

    <bean id="bookDaoImpl" class="dao.impl.BookDaoImpl" />
    修改为
    <bean id="bookDaoImpl" class="dao.impl.BookDaoImpl" >
    <property name="sessionFactory" ref="sessionFactory" />
    </bean>
      

  2.   

    非常感谢LS的朋友,但又出现一异常:
    2011-7-29 13:06:46 org.apache.catalina.core.AprLifecycleListener init
    信息: Loaded APR based Apache Tomcat Native library 1.1.20.
    2011-7-29 13:06:46 org.apache.catalina.core.AprLifecycleListener init
    信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
    2011-7-29 13:06:47 org.apache.coyote.AbstractProtocolHandler init
    信息: Initializing ProtocolHandler ["http-apr-8090"]
    2011-7-29 13:06:47 org.apache.coyote.AbstractProtocolHandler init
    信息: Initializing ProtocolHandler ["ajp-apr-8009"]
    2011-7-29 13:06:47 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 1331 ms
    2011-7-29 13:06:47 org.apache.catalina.core.StandardService startInternal
    信息: Starting service Catalina
    2011-7-29 13:06:47 org.apache.catalina.core.StandardEngine startInternal
    信息: Starting Servlet Engine: Apache Tomcat/7.0.12
    2011-7-29 13:06:47 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory ROOT
    2011-7-29 13:06:48 org.apache.catalina.startup.HostConfig deployDirectory
    信息: Deploying web application directory shortanswer_5_2
    2011-7-29 13:06:48 org.apache.catalina.core.ApplicationContext log
    信息: Initializing Spring root WebApplicationContext
    log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
    log4j:WARN Please initialize the log4j system properly.
    2011-7-29 13:06:51 org.apache.catalina.core.StandardContext filterStart
    严重: Exception starting filter struts2
    Unable to load configuration. - bean - jar:file:/C:/Program%20Files%20(x86)/apache-tomcat-7.0.12-x86/webapps/shortanswer_5_2/WEB-INF/lib/struts2-core-2.2.3.jar!/struts-default.xml:48:178
    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:4562)
    at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5240)
    at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5235)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: Unable to load configuration. - bean - jar:file:/C:/Program%20Files%20(x86)/apache-tomcat-7.0.12-x86/webapps/shortanswer_5_2/WEB-INF/lib/struts2-core-2.2.3.jar!/struts-default.xml:48:178
    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 more
    Caused by: Unable to load bean: type:org.apache.struts2.dispatcher.multipart.MultiPartRequest class:org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest - bean - jar:file:/C:/Program%20Files%20(x86)/apache-tomcat-7.0.12-x86/webapps/shortanswer_5_2/WEB-INF/lib/struts2-core-2.2.3.jar!/struts-default.xml:48:178
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:232)
    at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:101)
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:180)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)
    ... 16 more
    Caused by: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/RequestContext
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
    at java.lang.Class.getDeclaredConstructors(Class.java:1836)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:222)
    ... 19 more
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.fileupload.RequestContext
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    ... 23 more
    2011-7-29 13:06:51 org.apache.catalina.core.StandardContext startInternal
    严重: Error filterStart
    2011-7-29 13:06:51 org.apache.catalina.core.StandardContext startInternal
    严重: Context [/shortanswer_5_2] startup failed due to previous errors

    2011-7-29 13:06:51 org.apache.catalina.core.ApplicationContext log
    信息: Closing Spring root WebApplicationContext
    2011-7-29 13:06:51 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc

    严重: The web application [/shortanswer_5_2] registered the JDBC driver [oracle.jdbc.driver.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
    2011-7-29 13:06:51 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
    严重: The web application [/shortanswer_5_2] appears to have started a thread named [Timer-0] but has failed to stop it. This is very likely to create a memory leak.
    2011-7-29 13:06:51 org.apache.coyote.AbstractProtocolHandler start

    信息: Starting ProtocolHandler ["http-apr-8090"]
    2011-7-29 13:06:51 org.apache.coyote.AbstractProtocolHandler start
    信息: Starting ProtocolHandler ["ajp-apr-8009"]
    2011-7-29 13:06:51 org.apache.catalina.startup.Catalina start
    信息: Server startup in 3813 ms

    这是我的struts.xml配置:
    <?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.i18n.encoding" value="utf-8"/>
    <constant name="struts.devMode" value="true"/>
    <constant name="struts.serve.static.browerCache" value="false"/>
    <package name="myPack" extends="struts-default">
    <action name="init" class="bookAction">
    <result>success.jsp</result>
    <result name="input">add.jsp</result>
    <result name="error">error.jsp</result>
    </action>
    <action name="add" class="bookAction" method="addOne">
    <result>success.jsp</result>
    <result name="input">add.jsp</result>
    <result name="error">error.jsp</result>
    </action>
    </package>
    </struts>
      

  3.   

    网上搜索一番后说是struts配置文件异常,遂将struts.xml贴出,怎么也看不出啊~
      

  4.   

    貌似jar冲突或者少了jar包,配置应该没啥问题
      

  5.   

    我把项目中所引用的jar包写出来:
    antlr-2.7.6.jar
    commons-collections.jar
    commons-dbcp.jar
    commons-lang.jar
    commons-logging.jar
    dom4j-1.6.1.jar
    freeer-2.3.16.jar
    hibernate3.jar
    javassist.jar               //
    javassist-3.9.0GA.jar       //     
    javassist-3.11.0GA.jar      //是不是这三个包冲突
    jta-1.1.jar
    log4j-1.2.15.jar
    ognl-3.0.1.jar
    ojdbc14.jar
    slf4j-api-1.5.8.jar
    slf4j-nop-1.5.8.jar
    spring.jar
    struts2-dojo-plugin-2.2.3.jar
    xwork-core-2.2.3.jar
      

  6.   

    已经试过了,好像不是上面3个包冲突的问题:
    严重: Exception starting filter struts2
    Unable to load configuration. - bean - jar:file:/C:/Program%20Files%20(x86)/apache-tomcat-7.0.12-x86/webapps/shortanswer_5/WEB-INF/lib/struts2-core-2.2.3.jar!/struts-default.xml:48:178

    错误依旧≧︿≦
      

  7.   

    遵命!
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <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>
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    </web-app>
      

  8.   

    我感觉是加载过滤器的时候出错了,错误提示很明确,
    无法加载struts-default.xml,你看看你把struts2-core-2.2.3.jar包加的对不对。
      

  9.   

    我新建了一个工程,将原来的按照下面的包重新加了一次:
    antlr-2.7.6.jar
    commons-collections.jar
    commons-dbcp.jar
    commons-lang.jar
    commons-logging.jar
    dom4j-1.6.1.jar
    freeer-2.3.16.jar
    hibernate3.jar
    javassist.jar               
    jta-1.1.jar
    log4j-1.2.15.jar
    ognl-3.0.1.jar
    ojdbc14.jar
    slf4j-api-1.5.8.jar
    slf4j-nop-1.5.8.jar
    spring.jar
    struts2-core-2.2.3.jar
    struts2-dojo-plugin-2.2.3.jar
    xwork-core-2.2.3.jar
    还是不行 ╯﹏╰
    struts2-core-2.2.3.jar 我先前结合Struts2和Hibernate3是可以的.
      

  10.   

    tomcat 重装一次  最好在根目录下面,注意文件名不能有空格存在
      

  11.   

    谢谢大家,原来是我粗心造成的,>﹏<
    少加的两个包:
    commons-fileupload.jar
    struts2-spring-plugin.jar
    自己的教训啊!