javax.servlet.ServletException:创建在类路径资源中定义了名为“userService”的bean时出错

javax.servlet.ServletException:创建在类路径资源中定义了名为“userService”的bean时出错,java,mysql,spring,jakarta-ee,struts,Java,Mysql,Spring,Jakarta Ee,Struts,我一次又一次地遇到这种异常情况,但仍然找不到原因。。 我附上必要的文件,以便更容易理解 [web.xml] javax.servlet.ServletException: Error creating bean with name 'userService' defined in class path resource [applicationContext.xml]: Cannot resolve reference to bean 'helloDao' while setting bean

我一次又一次地遇到这种异常情况,但仍然找不到原因。。 我附上必要的文件,以便更容易理解

[web.xml]

javax.servlet.ServletException: Error creating bean with name 'userService' defined in class path resource [applicationContext.xml]:
Cannot resolve reference to bean 'helloDao' while setting bean property 'helloDao';
nested exception is
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'helloDao' defined in class path resource [applicationContext.xml]: Initialization of bean failed;
nested exception is
    org.springframework.beans.InvalidPropertyException: Invalid property 'jdbcTemplate' of bean class [dao.HelloDaoImpl]: No property 'jdbcTemplate' found
我在错误页面的最底部得到的是

org.springframework.beans.InvalidPropertyException: Invalid property 'jdbcTemplate' of bean class [dao.HelloDaoImpl]: No property 'jdbcTemplate' found
在我看来一切都很好 但我相信专家的看法总是很有效的,所以我急切地寻求建议。。 请做一点努力,这对我很有帮助
提前感谢…

在您的应用程序上下文中,您定义了以下依赖项

<bean id="helloDao" class="dao.HelloDaoImpl">
    <property name="jdbcTemplate">
        <ref bean="jdbcTemplate"/>
    </property>
</bean>
您可能在HelloDaoImpl中缺少字段jdbcTemplate的setter。请查收

<bean id="helloDao" class="dao.HelloDaoImpl">
        <property name="jdbcTemplate">
            <ref bean="jdbcTemplate"/>
        </property>
    </bean>
您应该在HelloDaoImpl类中设置相同的属性 而不是

私有jdbc模板

并为此重新制作你的getter/setter

<body>
    <form action="register.me" method="post">
    <pre>
    Name        :   <input type="text" name="userName" >
    Password    :   <input type="text" name="userPassword" >
                    <input type="submit" value="Click to Register">
    </pre>
    </form>
</body>
public class UserRegisterAction extends Action {
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        RegisterUser user=new RegisterUser();
        UserRegisterForm form2=(UserRegisterForm)form;
        user.setM_userName(form2.getM_userName());
        user.setM_userPassword(form2.getM_userPassword());

        int i= ((IUserService)HelloServiceFactory.getUserServices()).addNewUser(user);
        if(i==1){
            return mapping.findForward("success");
        }
        else {
            request.setAttribute("Output", "Wrong Credentials");
            return mapping.findForward("error");
        }
        }
}

public class HelloContextListener implements ServletContextListener {

    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void contextInitialized(ServletContextEvent arg0) {

        ClassPathResource classPathResource=new ClassPathResource("applicationContext.xml");
        XmlBeanFactory beanFactory=new XmlBeanFactory(classPathResource);
        HelloServiceFactory.setBeanFactory(beanFactory);
    }

}

public class HelloServiceFactory {

    private static XmlBeanFactory beanFactory;

    public static XmlBeanFactory getBeanFactory() {
        return beanFactory;
    }

    public static void setBeanFactory(XmlBeanFactory beanFactory) {
        HelloServiceFactory.beanFactory = beanFactory;
    }

    public static IUserService getUserServices(){

        return (IUserService)getBeanFactory().getBean("userService");
    }
}

public class UserRegisterForm extends ActionForm {
    /**
     * 
     */

private static final long serialVersionUID = 1L;

private String m_userName;

private String m_userPassword;

public String getM_userName() {
        return m_userName;
    }

public void setM_userName(String m_userName) {
        this.m_userName = m_userName;
    }

public String getM_userPassword() {
        return m_userPassword;
    }

public void setM_userPassword(String m_userPassword) {
        this.m_userPassword = m_userPassword;
    }


}


public class UserServiceImpl implements IUserService {

    private IHelloDao m_dao;
    public IHelloDao getM_dao() {
        return m_dao;
    }
    public void setM_dao(IHelloDao m_dao) {
        this.m_dao = m_dao;
    }
    public void initialize() {

    }

    public int addNewUser(RegisterUser user) throws Exception {
        int stat=0;
        try {
            stat=m_dao.addNewUser(user);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return stat;
    }


}

public interface IUserService {

    public int addNewUser(RegisterUser user)throws Exception;
}

public class RegisterUser {

private static String m_userName;
private static String m_userPassword;
 public String getM_userName() {
        return m_userName;
    }
 public void setM_userName(String m_userName) {
        RegisterUser.m_userName = m_userName;
    }
 public String getM_userPassword() {
        return m_userPassword;
    }
 public void setM_userPassword(String m_userPassword) {
        RegisterUser.m_userPassword = m_userPassword;
    }
}

public class HelloDaoImpl implements IHelloDao{

    private JdbcTemplate template;
    public JdbcTemplate getTemplate() {
        return template;
    }
    public void setTemplate(JdbcTemplate template) {
        this.template = template;
    }

    public int addNewUser(RegisterUser user) throws Exception {
        Object []a={user.getM_userName(),user.getM_userPassword()};
        return template.update("insert into user(uName, uPasswordv) values (?,?)", a);
    }

}

public interface IHelloDao {
    public int addNewUser(RegisterUser user)throws Exception;
}
org.springframework.beans.InvalidPropertyException: Invalid property 'jdbcTemplate' of bean class [dao.HelloDaoImpl]: No property 'jdbcTemplate' found
<bean id="helloDao" class="dao.HelloDaoImpl">
    <property name="jdbcTemplate">
        <ref bean="jdbcTemplate"/>
    </property>
</bean>
<bean id="helloDao" class="dao.HelloDaoImpl">
        <property name="jdbcTemplate">
            <ref bean="jdbcTemplate"/>
        </property>
    </bean>