读书人

spring的有关问题,

发布时间: 2011-12-31 23:50:30 作者: rapoo

spring的问题,急.......
错误如下:
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 'personRegisterDAO ' defined in ServletContext resource [/WEB-INF/config/Common_Member_Spring.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'queryPersonUserSql ' of bean class [com.pkgame.common.member.dao.impl.PersonRegisterDAO]: Bean property 'queryPersonUserSql ' is not writable or has an invalid setter method: Does the parameter type of the setter match the return type of the getter?
org.springframework.beans.NotWritablePropertyException: Invalid property 'queryPersonUserSql ' of bean class [com.pkgame.common.member.dao.impl.PersonRegisterDAO]: Bean property 'queryPersonUserSql ' 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:670)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:572)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:737)
at org.springframework.beans.BeanWrapperImpl.setPropertyValues(BeanWrapperImpl.java:764)
at org.springframework.beans.BeanWrapperImpl.setPropertyValues(BeanWrapperImpl.java:753)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1057)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:857)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:378)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:283)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:313)
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3763)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4211)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)


at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:904)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:867)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1122)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1021)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
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:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)


PersonRegisterDAO文件如下:

public class PersonRegisterDAO implements IPersonRegisterDAO{
private IUserRegister userRegister;

private JdbcTemplate jdbcTemplate;

private String insertPersonSql;

private String queryPersonUserSql;

private KeyGenerator keyGenerator;

public KeyGenerator getKeyGenerator() {
return keyGenerator;
}

public void setKeyGenerator(KeyGenerator keyGenerator) {
this.keyGenerator = keyGenerator;
}

public PersonUser getPersonUserInfoByUserId(String userid)
{
List userInfoList = this.jdbcTemplate.queryForList(queryPersonUserSql,
new Object[] { userid });

if (userInfoList.size()==1){
return (PersonUser)userInfoList.get(0);
} else {
return null;
}

}

public String getInsertPersonSql() {
return insertPersonSql;
}

public void setInsertPersonSql(String insertPersonSql) {
this.insertPersonSql = insertPersonSql;
}

public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}

public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}

public IUserRegister getUserRegister() {
return userRegister;
}

public void setUserRegister(IUserRegister userRegister) {
this.userRegister = userRegister;
}

public String getQueryPersonUserSql() {
return queryPersonUserSql;
}

public void setQueryPersonUserSql(String queryPersonUserSql) {


this.queryPersonUserSql = queryPersonUserSql;
}
}

spring配置文件中相关段:
<bean id= "personRegisterDAO " class= "com.pkgame.common.member.dao.impl.PersonRegisterDAO ">
<property name= "jdbcTemplate ">
<ref bean= "jdbcTemplate " />
</property>
<property name= "keyGenerator ">
<ref bean= "keyGenerator " />
</property>
<property name= "insertPersonSql ">
<value>
INSERT INTO USER_PERSONALINFO(PERSONALID,REGISTERID,GENDER,REALNAME,IDTYPE,IDCARD,HOMEADDRESS,WORKADDRESS,POSTCODE,CONTACTPHONE1,CONTACTMOBILE1,CONTACTPHONE2,CONTACTMOBILE2,CONTACTPHONE3,CONTACTMOBILE3,EMAIL,QQ,MSN,OTHERCHAT,DESCRIPTION)
VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
</value>
</property>

<property name= "queryPersonUserSql ">
<value> SELECT * FROM USER_PERSONALINFO WHERE REGISTERID= '? ' </value>
</property>
</bean>


不知道什么问题.调试了一天了.


[解决办法]
可能是配置文件错了.
看看帮助文档.好像要用
<list>
<property ...>
</property>
</list>
[解决办法]
你把单引号转义一下试试

读书人网 >Java Web开发

热点推荐