在执行jdbcTemplate.execute(procedure,newCallableStatementCallback() 的时候报空指针异常如下:
description Theserver encountered an internal error () that prevented it from fulfilling thisrequest.
exception
org.springframework.web.util.NestedServletException:Request processing failed; nested exception is java.lang.NullPointerException
org.springframework.web.servlet.FrameworkServlet.finalizeProcessing(FrameworkServlet.java:947)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:893)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:792)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.lang.NullPointerException
com.spw.dao.impl.UserDaoImpl.checkUser(UserDaoImpl.java:60)
com.spw.service.impl.UserServiceImpl.rigister(UserServiceImpl.java:27)
com.spw.controller.UserloginController.loginOn(UserloginController.java:31)
sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
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:950)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:859)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:883)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:792)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
是由于在配置数据库这一块
<!-- 配置数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!-- 指定连接数据库的驱动 -->
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<!-- 指定连接数据库的url -->
<property name="url" value="jdbc:oracle:thin:localhost"></property>
<!-- 指定连接数据库的用户名 -->
<property name="username" value="scott"></property>
<!-- 指定连接数据库的密码 -->
<property name="password" value="199063"></property>
</bean>
<!-- 将dataSource 对象注入到jdbcTemplate中-->
<bean id = "jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!-- 构造注入 -->
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 将jdbcTemplate注入到userService中 -->
<bean id="UserDao" class="com.spw.dao.impl.UserDaoImpl">
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
我是配置在applicationContext.xml下面的而不是我在xml自定义的springMVC-servlet.xml
<!-- 制定springBean的配置文件所在的目录。默认配置在WEB-INF目录下-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springMVC-servlet.xml</param-value>
</context-param>
所以找不到jdbcTemplate对象,因而报了空指针的异常,将上面配置数据库这一块的代码移到自定义的springMVC-servlet.xml下面即可!!!