java - spring mvc 只要使用context:component-scan标签就报500错误
迷茫
迷茫 2017-04-17 17:57:32
0
4
913

使用的是jre1.8 spring4.0 让我百思不得其解的是只要springmvc.xml中出现了
<context:component-scan base-package="com.ssm.controller"></context:component-scan> 这个标签 就肯定会报下面的这个500错误,只要不写这个标签就能成功部署,我后来用标注的方式来标记handler还是不行 一切都是因为这个标签的问题 已经好几天了无法解决 求高人看下这个到底是哪里的错误 我实在搞不懂,多谢了!

springmvc.xml 配置文件

<?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:mvc="http://www.springframework.org/schema/mvc"
       xmlns:p="http://www.springframework.org/schema/p"
       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-3.0.xsd
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context-3.0.xsd
            http://www.springframework.org/schema/aop 
            http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
            http://www.springframework.org/schema/tx 
            http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
            http://www.springframework.org/schema/mvc 
            http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    
   
 <context:component-scan base-package="com.ssm.controller"></context:component-scan>
   
  
  
  <!-- 处理器适配器 将bean的name作为url进行查找 ,需要在配置Handler时指定beanname(就是url) 
    所有的映射器都实现 HandlerMapping接口。 -->
  <bean   class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
    
    
    
      <!-- 配置Handler  将编写的Handller在映射器加载 ,name一定要写成url -->
    <bean  id="itemsController" name="/queryItems.action" class="com.ssm.controller.ItemsController1" />
      
      
    <!-- 处理器映射器 将bean的name作为url进行查找 ,需要在配置Handler时指定beanname(就是url) 
    所有的映射器都实现 HandlerMapping接口。
    -->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
  
  
    <!-- 视图解析器
    解析jsp解析,默认使用jstl标签,classpath下的得有jstl的包
     -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      
    </bean>
</beans>






web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>springmvc</display-name>
    
  <!-- springmvc前端控制器 -->
  <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:springmvc.xml</param-value>
      </init-param>
  </servlet>
    
  <servlet-mapping>
      <servlet-name>springmvc</servlet-name>
    
      <url-pattern>*.action</url-pattern>
  </servlet-mapping>
    
    
  <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>
</web-app>





**ItemsController1**

    package com.ssm.controller;
  
import java.util.ArrayList;
import java.util.List;
  
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
  
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
  
import com.ssm.pojo.Items;
  
public class ItemsController1 implements Controller{
  
      
    public ModelAndView handleRequest(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
          
        //调用service查找 数据库,查询商品列表,这里使用静态数据模拟
                List<Items> itemsList = new ArrayList<Items>();
                //向list中填充静态数据
                  
                Items items_1 = new Items();
                items_1.setName("联想笔记本");
                items_1.setPrice(6000f);
                items_1.setDetail("ThinkPad T430 联想笔记本电脑!");
                  
                Items items_2 = new Items();
                items_2.setName("苹果手机");
                items_2.setPrice(5000f);
                items_2.setDetail("iphone6苹果手机!");
                  
                itemsList.add(items_1);
                itemsList.add(items_2);
  
                //返回ModelAndView
                ModelAndView modelAndView =  new ModelAndView();
                //相当 于request的setAttribut,在jsp页面中通过itemsList取数据
                modelAndView.addObject("itemsList", itemsList);
                  
                //指定视图
                modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
  
                return modelAndView;
  
    }
  
}
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

reply all(4)
刘奇

com.ssm.controller.*Try it

黄舟
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

web.xml is missing the above sentence and integrates the Spring container into the web application

阿神

The correct answer upstairs is because you did not load the spring container when the web server started. I'm just trying to mix things up~~~~

伊谢尔伦

Owner, my problem is exactly the same as yours. I have been working on it for a long time but I still can’t find the reason. How did you solve it?

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template