-
springmvc 注入总是空指针异常5
各位大牛,小弟又来请教问题了
tomcat7.0+ spring3.1.1 + hibernate3.6.0
程序跑起来了,但是输入url后,抛空指针异常,查了很多资料,都没找到解决办法,请教大神
exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.lang.NullPointerException
cc.fanbang.api.manager.DBManager.addUser(DBManager.java:142)
cc.fanbang.api.controller.TestController.handleDBManagerTestRequest(TestController.java:43)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:601)
org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
数据库配置成功,运行之后所有表建立起来
这是applicationContext.xml
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close" >
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://localhost/fanbang" />
<property name="user" value="root" />
<property name="password" value="root" />
<property name="maxPoolSize" value="40" />
<property name="minPoolSize" value="1" />
<property name="initialPoolSize" value="1" />
<property name="maxIdleTime" value="20" />
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingDirectoryLocations">
<list>
<value>WEB-INF/mappings</value>
</list>
</property>
<property name="hibernateProperties" >
<value>
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
hibernate.hbm2ddl.auto=update
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.cache.use_second_level_cache=true
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
</value>
</property>
</bean>
<bean id="userDaoHibernate" class="cc.fanbang.api.dao.impl.UserDaoHibernate">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
这是spring-servlet.xml
<bean id="testController" class="cc.fanbang.api.controller.TestController"></bean>
<bean id="dbManager" class="cc.fanbang.api.manager.DBManager" >
<property name="userDaoHibernate" ref="userDaoHibernate" />
<!--
<property name="postDaoHibernate" ref="postDaoHibernate" />
<property name="replyDaoHibernate" ref="replyDaoHibernate" />
<property name="restaurantDaoHibernate" ref="restaurantDaoHibernate" />
<property name="relationshipDaoHibernate" ref="relationshipDaoHibernate" />
-->
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
这是web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
问题补充:忘了说明,userDaoHibernate注入失败,总是空指针
class DBManager {
private UserDaoHibernate userDaoHibernate;
// 省略 set,get方法
public void addUser(User user) {
}
}
问题补充:上面补充的 class DBManager implements DBManagerInterface2012年9月30日 23:31
3个答案 按时间排序 按投票排序
-
采纳的答案
忘了说明,userDaoHibernate注入失败,总是空指针 userDaoHibernate有setter方法吗?
2012年10月01日 07:33
-
貌似 private static UserDaoHibernate userDaoHibernate;
这个对象是不是要写成静态的。。。2012年10月02日 14:00
-
想必你的DBManager.getInstance()这个方法肯定是采用单例模式创建的,那里面的DBManager的实例肯定是new出来的了,new出来的实例和你在xml中配置的Spring管理的实例:
<bean id="userDaoHibernate" class="cc.fanbang.api.dao.impl.UserDaoHibernate"> <property name="sessionFactory" ref="sessionFactory" /> </bean>
不是一个实例,因而里面的sessionFactory属性Spring是不会自动为你注入的,所以肯定是会抛空指针异常的。2012年10月02日 10:19
相关推荐
springmvc返回json的全局异常统一处理demo,有问题可以留言。
SpringMVC入门很简单之异常处理,具体参考博文:http://www.cnblogs.com/liukemng/tag/SpringMVC/
springmvc异常处理的博文如下: http://blog.csdn.net/dlf123321/article/details/50756003
本资源文件是利用SpringMVC面向切面实现的一套捕获全局异常插入数据库的代码,刚开始想实现HandlerExceptionResolver,但是不知道为什么不起作用,又自己重新写了一套。
1.拦截器的配置 2.异常处理器的两种方式配置
ssm-springMVC-整合Quartz(解决了无法注入service问题).doc
springmvc框架已做service注入,用于java开发的纯框架
异常一层一层的向上抛出,但是开发人员肯定不想要用户看到代码出错,因此需要将异常屏蔽了,SpringMVC提供了异常处理的手段。
这个是一个简单的springmvc的空白maven项目,导入就可以直接使用
本文档主要介绍了SpringMVC的ModelAndView机制,使用SpringMVC实现文件上传,下载以及全局异常处理机制
极客学院java中级课程,SpringMVC系列教材——SpringMVC 中的拦截器与异常处理
SpringMVC中异常处理机制,简单案例,里面有详细说明以及博客说明。
springMVC3学习(八)--全局的异常处理(源码) 文章地址:http://blog.csdn.net/itmyhome1990/article/details/26286435
空白Spring+SpringMvc+Mybatis配Maven环境,一个空的环境需要根据自己功能DIY
springmvc是常用的一种框架,学习springmvc非常重要,故需要良好教程资料
Maven+SpringMVC实现统一异常处理
本视频针对博客内容,讲解springMVC框架中的统一异常处理的知识点和实例,以及500错误和404错误异常处理上的区别,简单易懂,言简意赅。
通过aop拦截获取json请求数据,对数据进行处理判断,如果不合法则抛出异常,配置全局异常处理类,在异常处理类中直接将处理结果返回调用处,减少每次在方法中解析json数据然后在判断,减少代码冗余
12SpringMVC异常处理.md
传智 springmvc mybatis 燕青 笔记 教案 springmvc部分