javax.servlet.ServletException:创建在类路径资源中定义了名为“userService”的bean时出错
我一次又一次地遇到这种异常情况,但仍然找不到原因。。 我附上必要的文件,以便更容易理解 [web.xml]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
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>