spring MVC配置,启动报异常:Error creating bean with name 'userDao' defined in URL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring MVC配置,启动报异常:Error creating bean with name 'userDao' defined in URL相关的知识,希望对你有一定的参考价值。

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao' defined in URL [file:/D:/Program%20Files/Apache%20Software%20Foundation/Tomcat%207.0/webapps/springMVC_14/WEB-INF/classes/com/spring/mvc/config/user.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in file [D:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\springMVC_14\WEB-INF\classes\com\spring\mvc\config\spring-hibernate.xml]: Invocation of init method failed; nested exception is java.lang.NullPointerException

配置文件如下:
user.xml如下:
<beans>
<bean id="userDao" class="com.spring.mvc.dao.UserDAO">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="userManagerBase" class="com.spring.mvc.service.UserManager">
<property name="userDao" ref="userDao"></property>
</bean>
<bean id="userManager" parent="transactionBese">

<property name="target" ref="userManagerBase"></property>
</bean>
</beans>

hibernate.cfg.xml如下:

<hibernate-configuration>
<session-factory>
<mapping class="com.spring.mvc.entity.User"/>
</session-factory>
</hibernate-configuration>

spring-hibernate.xml如下:
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hiberante.format_sql">true</prop>
</props>
</property>
<property name="configLocations">
<list>
<value>
classpath*:com/spring/mvc/config/hibernate.cfg.xml
</value>
</list>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

其中service中userDao和dao中的sessionFactory也写了set方法

web.xml中的部分代码:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:com/spring/mvc/config/spring-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:com/spring/mvc/config/spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

有两种情况:

1、userDAO的set()和get()方法没有定义;

2、userDAO没有接口,有的话<bean id="userDao" class="com.spring.mvc.dao.UserDAO">应改为<bean id="userDao"class="com.spring.mvc.dao.UserDAOImp">它的接口相对应的类。

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。

使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等。


扩展资料

MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,C(控制器)将V(视图、用户客户端)与M(javaBean:封装数据)构成了MVC 。

通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText和POI。

Spring MVC 框架并不知道使用的视图,所以不会强迫开发者只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、过滤器以及处理程序对象的角色,这种分离让它们更容易进行定制。

参考资料来源:百度百科-Spring MVC

参考资料来源:百度百科-接口(软件接口)

参考技术A

spring MVC配置,启动报异常是因为系统配置出现异常导致的,建议进行重装系统的方法来解决,具体步骤如下图所示:

1、接着等待进入U盘装机大师主菜单界面,选择【01】运行U盘装机大师win8pe防蓝屏版,按回车键确认选择,如下图所示:

2、进入U盘装机大师win10pe系统后,U盘装机大师pe一键装机工具会自动开启并加载win10系统iso镜像文件gho安装程序,单击选择c盘为系统安装盘,再点击“确定”按钮继续,如下图所示:

3、随后弹出讯问题是窗口,点击“确定”按钮继续操作,如下图所示:

4、等待win10系统iso镜像文件gho安装程序释放完成并自动重启电脑,如下图所示:

5、电脑重启后会自动系统后续程序安装,并设置相关账户参数即可,直到进入win10应用选择界面,点击左下角“桌面”应用,此时即可进入到win10桌面,如下图所示:

参考技术B 1.你的userDAO的set()和get()方法有没有给,没有就错了
2.你的userDAO有没有接口,有的话<bean id="userDao" class="com.spring.mvc.dao.UserDAO">应改为<bean id="userDao" class="com.spring.mvc.dao.UserDAOImp">即他的接口对应的类

基本都是这两个原因引起的,另外注意别把字母大小写写错了追问

我靠,点错了,上面那个点了一下选为满意答案,啊,我是要追问他的。。。。。。哎。

参考技术C 问题出在你sessionFactory这个bean的配置有问题,但是具体的还要看你贴更多的出来

还有,为啥你的所有classpath的配置都是写的classpath* ?把那个 * 去掉试试追问

UserDao:
public class UserDAO implements IUserDAO
private SessionFactory sessionFactory;
public SessionFactory getSessionFactory()
return sessionFactory;

UserManager :
public class UserManager implements IUserManager
private IUserDAO userDao;
public void setUserDao(IUserDAO userDao)
this.userDao = userDao;

追答

sessionFactory不用get,要set

追问

这个都试过了,我set get都写了,刚刚贴的时候贴了get出来,set也写了的。

追答

它最后报的错误是空指针,你可以看看,你的sessionFactory配置的class存不存在,还有对这个bean里面那些具体属性的检查

本回答被提问者采纳

Spring Mvc使用Jackson进行json转对象时,遇到的字符串转日期的异常处理(JSON parse error: Can not deserialize value of type jav

1.问题排查

- 项目配置

  • springboot 2.1
  • maven配置jackson

- 出现的场景:

  • 服务端通过springmvc写了一个对外的接口,查询数据中的表,表中有一个字段属性是时间戳,返回一个json字符串,其中该json带有日期,格式为yyyy-MM-dd HH:mm:ss
  • 客户端调用该http接口,指定返回值为一个Vo,Vo中日期的字段为Date类型
  • 客户端调用该接口后抛异常了。报错信息如下:
feign.codec.DecodeException: JSON parse error: Can not deserialize value of type java.util.Date from String "2018-03-07 16:18:35": not a valid representation (error: Failed to parse Date value ‘2018-03-07 16:18:35‘: Can not parse date "2018-03-07 16:18:35Z": while it seems to fit format ‘yyyy-MM-dd‘T‘HH:mm:ss.SSS‘Z‘‘, parsing fails (leniency? null)); nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Can not deserialize value of type java.util.Date from String "2018-03-07 16:18:35": not a valid representation (error: Failed to parse Date value ‘2018-03-07 16:18:35‘: Can not parse date "2018-03-07 16:18:35Z": while it seems to fit format ‘yyyy-MM-dd‘T‘HH:mm:ss.SSS‘Z‘‘, parsing fails (leniency? null))

2.解决方法

因为数据库中存在一个create_time字段,属性是timestamp,服务器端查询数据库并把字段映射到定义的Vo中出现了格式问题,所以在Vo中把createTime添加@JsonFormat注释就可以完成时间字段映射的格式问题。

@JsonFormat( pattern="yyyy-MM-dd HH:mm:ss")  
  private Date createTime;  

3.报异常的原因

参考:https://blog.csdn.net/qq906627950/article/details/79503801
这篇博客可以了解底层报错的原因。


以上是关于spring MVC配置,启动报异常:Error creating bean with name 'userDao' defined in URL的主要内容,如果未能解决你的问题,请参考以下文章

SSH问题:系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常

Spring Mvc报异常:java.lang.reflect.UndeclaredThrowableException

Unrecognized Windows Sockets error: 0: JVM_Bind,IntelliJ IDEA启动tomcat报异常

ASP.NET MVC中的错误处理

Spring Mvc使用Jackson进行json转对象时,遇到的字符串转日期的异常处理(JSON parse error: Can not deserialize value of type jav

spring boot启动报错 application startup failed怎么解决