2010-1-3 22:43:56 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.5.0_06\bin;C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin
2010-1-3 22:43:56 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2010-1-3 22:43:56 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1204 ms
2010-1-3 22:43:56 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2010-1-3 22:43:56 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.18
2010-1-3 22:44:00 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.
2010-1-3 22:44:09 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 'pwdModifyService' defined in class path resource [applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'pwdModifyDAO' of bean class [com.hrmanager.service.PwdModifyService]: Bean property 'pwdModifyDAO' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'pwdModifyDAO' of bean class [com.hrmanager.service.PwdModifyService]: Bean property 'pwdModifyDAO' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:793)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:645)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:78)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:59)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1127)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:862)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:424)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:287)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
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:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2010-1-3 22:44:09 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2010-1-3 22:44:09 org.apache.catalina.core.StandardContext start
严重: Context [/mySSH] startup failed due to previous errors
2010-1-3 22:44:09 org.apache.catalina.core.ApplicationContext log
信息: Closing Spring root WebApplicationContext
2010-1-3 22:44:14 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsing configuration file [struts-default.xml]
2010-1-3 22:44:15 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Unable to locate configuration files of the name struts-plugin.xml, skipping
2010-1-3 22:44:15 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsing configuration file [struts-plugin.xml]
2010-1-3 22:44:15 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsing configuration file [struts.xml]
2010-1-3 22:44:17 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2010-1-3 22:44:17 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2010-1-3 22:44:17 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/62  config=null
2010-1-3 22:44:17 org.apache.catalina.startup.Catalina start
信息: Server startup in 20935 ms

解决方案 »

  1.   


    Bean property 'pwdModifyDAO' is not writable or has an invalid setter method
    Does the parameter type of the setter match the return type of the getter? 
      

  2.   

    bean class [com.hrmanager.service.PwdModifyService]: Bean property 'pwdModifyDAO' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter? PwdModifyService中定义pwdModifyDAO的get,set方法没有,而且必须是public的,检查下注入的类型对不
      

  3.   

    package com.hrmanager.service;import com.hrmanager.dao.PwdModifyDAO;public class PwdModifyService { private PwdModifyDAO dao = null;

    public void pwdModify(String pwd,int operatorID){
    dao.updatePWD(pwd,operatorID);
    } public PwdModifyDAO getDao() {
    return dao;
    } public void setDao(PwdModifyDAO dao) {
    this.dao = dao;
    } 这是我的程序
      

  4.   

    方法名错误:
    改成
    public void setPwdModifyDao(PwdModifyDAO dao) { 
       this.dao = dao; 
    }
    public PwdModifyDAO getPwdModifyDao() { 
         return dao; 
      

  5.   

    检查配置文件中的<bean id = "".....> 看看是不是这样  id = "dao"  
      

  6.   

    改成这样了,还是不行:package com.hrmanager.service;import com.hrmanager.dao.PwdModifyDAO;public class PwdModifyService { private PwdModifyDAO pwdModifyDAO;

    public void pwdModify(String pwd,int operatorID){
    pwdModifyDAO.updatePWD(pwd,operatorID);
    } public PwdModifyDAO getPwdModifyDAO() {
    return pwdModifyDAO;
    } public void setPwdModifyDAO(PwdModifyDAO pwdModifyDAO) {
    this.pwdModifyDAO = pwdModifyDAO;
    }

    }
    <bean id="pwdModifyDAO " class="com.hrmanager.dao.PwdModifyDAO">
    <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <bean id="pwdModifyService" class="com.hrmanager.service.PwdModifyService">
    <property name="pwdModifyDAO" ref="pwdModifyDAO"></property>
    </bean>

    <bean id="pwdModifyAction" class="com.hrmanager.action.PwdModifyAction">
    <property name="pwdModifyService" ref="pwdModifyService"></property>
    </bean>