空指针异常
来源:6-4 项目作业
慕斯4002519
2019-03-14 17:04:05
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.imooc.global.CoreServlet.service(CoreServlet.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.imooc.global.EncodingFilter.doFilter(EncodingFilter.java:20)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
com.imooc.controller.CategoryController
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at com.imooc.controller.CategoryController.list(CategoryController.java:26)
... 30 more
从昨天下午到现在了,还是找不到问题所在。他只说个空指针异常,也不说具体是哪得问题,老师他那个30more如何看到?
或者我能把整体传上去吗?这样问效率太低了
package com.imooc.controller;
import com.imooc.entity.Category;
import com.imooc.service.CategoryService;
import com.imooc.service.impl.CategoryServiceImpl;
import org.springframework.stereotype.Controller;
import javax.annotation.Resource;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@Controller("categoryController")
public class CategoryController {
@Resource
private CategoryService categoryService;
public void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(categoryService+"2s2s3");
List<Category>categoryList = categoryService.selectAll();
System.out.println(categoryList);
request.setAttribute("categoryList",categoryList);
request.getRequestDispatcher("/WEB-INF/categoryList.jsp").forward(request,response);
}
}
package com.imooc.dao;
import com.imooc.entity.Category;
import org.junit.Test;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
@Repository("categoryDao")
public interface CategoryDao {
void add(Category category);
void delete(int id);
void update(Category category);
Category selectById(int id);
List<Category> selectAll();
}
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.4//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.imooc.dao.CategoryDao">
<resultMap id="resultMap" type="Category">
<id column="id" property="id" />
<result column="name" property="name"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<select id="selectAll" resultMap="resultMap">
SELECT * FROM category
</select>
<insert id="add" useGeneratedKeys="true" keyProperty="id" >
INSERT category(name,create_time,update_time)VALUES (#{name},#{createTime},#(updateTime))
</insert>
<delete id="delete" >
DELETE FROM category where id = #{id}
</delete>
<update id="update">
UPDATE table category set name = #{name},create_time = #{createTime} update_time = #{updateTime} WHERE id = #{id}
</update>
<select id="selectById" resultMap="resultMap" >
SELECT * FROM category where id = #{id}
</select>
</mapper>
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 使用spring整合Mybatis 连接数据源和自动创建sql工厂类-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/hosptial?useSSL=false&serverTimezone=Hongkong&CharacterEncoding=utf-8&allowPublicKeyRetrieval=true"/>
<property name="username" value="root"/>
<property name="password" value="henxxh002012"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.imooc.entity"/>
</bean>
<!--自动扫描dao包下的mapper.xml,使用sqlSessionFactory???-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.imooc.dao"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
<!-- 声明式事务 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="get*" read-only="true"/>
<tx:method name="find*" read-only="true"/>
<tx:method name="search*" read-only="true"/>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="txPointcut" expression="execution(* com.imooc.service.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
</aop:config>
<!-- 全局扫描 -->
<context:component-scan base-package="com.imooc"/>
<aop:aspectj-autoproxy/>
</beans>
或者老师告诉我把什么修改成什么,如果可以就说明是哪得问题,比如说是数据库连接啊,注入啊,还是哪得问题,之前我发现了url得数据库名写得不对,改完还是不行,如果我把spring.xml得名字改了,会出现异常,说明ClassPathContext这个扫描了spring.xml,应该是从这出现了问题,我该如何测试出下一步是哪出了问题,在这个地方卡了好久了,没办法进行下面得啊,这还没有进行切面操作什么得,就仅仅是spring得IOC啊·········我在上个问题提出了一些可能性,麻烦老师看看,
2回答
1、建议同学换一种方式,用
ServletContext servletContext = this.getServletContext() ;
WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servletContext);
categoryList= (categoryList) context.getBean("categoryList");
这种方式去获取一下,或者通过new 一个获取一下试试。
2、两天,建议通常写个测试方法,调用一下用注解注入的Dao层看看行不行,有没有注入进去
3、同学看一下,你的项目的web模块儿中,是否有依赖进去这个service层的jar包。
4、关于查看30more中的内容,同学看一下有没有像加号一样的按钮呢?如果有点开试试。但是报错的关键信息应该是不在这里的。
祝学习愉快!
慕斯4002519
提问者
2019-03-14

在spring.xml形成得图,是否会有帮助
相似问题