HTTP Status 500 – Internal Server Error

HTTP Status 500 – Internal Server Error

错误信息:

Type Exception Report

Message No bean named 'UserController' available

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'UserController' available
org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:685)
org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1210)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1089)
com.imooc.hospital.global.DispatcherServlet.service(DispatcherServlet.java:63)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
com.imooc.hospital.global.LoginFilter.doFilter(LoginFilter.java:25)
com.imooc.hospital.global.EncodingFilter.doFilter(EncodingFilter.java:18)

Note The full stack trace of the root cause is available in the server logs.

spring.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: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 -->
    <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/hospital?useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=GMT%2B8"/>
        <property name="username" value="root"/>
        <property name="password" value="123"/>
    </bean>
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--属性-->
        <property name="dataSource" ref="dataSource"/>
        <!--别名:可以不填加包名,直接使用类-->
        <property name="typeAliasesPackage" value="com.imooc.hospital.entity"/>
    </bean>
    <!--指定一个包,包里面放置对应的持久化操作接口和映射文件,将接口全部整合起来实现具体功能-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.imooc.hospital.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.hospital.service.*.*(..))"/>
        <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
    </aop:config>
    <!--全局扫描-->
    <context:component-scan base-package="com.imooc.hospital"/>
    <aop:aspectj-autoproxy/>
    
</beans>

DispatcherServlet

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.imooc.hospital.global;

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class DispatcherServlet extends GenericServlet {
    private ApplicationContext context;

    public DispatcherServlet() {
    }

    public void init() throws ServletException {
        super.init();
        this.context = new ClassPathXmlApplicationContext("spring.xml");
    }

    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        HttpServletRequest request = (HttpServletRequest)servletRequest;
        HttpServletResponse response = (HttpServletResponse)servletResponse;
        String path = request.getServletPath().substring(1);
        String beanName = null;
        String methodName = null;
        int index = path.indexOf(47);
        System.out.println("创建成功");
        if (index != -1) {
            beanName = path.substring(0, index) + "Controller";
            methodName = path.substring(index + 1, path.indexOf(".do"));
        } else {
            beanName = "userController";
            methodName = path.substring(0, path.indexOf(".do"));
        }

        Object obj = this.context.getBean(beanName);

        try {
            Method method = obj.getClass().getMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
            method.invoke(obj, request, response);
        } catch (NoSuchMethodException var11) {
            var11.printStackTrace();
        } catch (IllegalAccessException var12) {
            var12.printStackTrace();
        } catch (InvocationTargetException var13) {
            var13.printStackTrace();
        }

    }
}

UserController

package com.imooc.hospital.controller;

import com.imooc.hospital.entity.User;
import com.imooc.hospital.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@Controller("userController")
public class UserController {
    @Autowired
    private UserService selfService;

    //      /toLogin.do
    public void toLogin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("login.jsp").forward(request,response);
    }
    public void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String account = request.getParameter("username");
        String password = request.getParameter("password");

        User user = selfService.login(account,password);
        if (user == null){
            response.sendRedirect("toLogin.do");
        }else {
            //存放在session中,先提取session
            HttpSession session = request.getSession();
            session.setAttribute("USER",user);
            response.sendRedirect("main.do");
        }
    }
    public void logout(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //存放在session中,先提取session在进行提取
        HttpSession session = request.getSession();
        session.setAttribute("USER", null);
        response.sendRedirect("toLogin.do");
    }
    // main.do
    public void main(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("category.jsp").forward(request,response);
    }

}

控制台没有报错和警告,从报错信息来看就是没有UserController的这个bean,但我不太明白为什么会有这个错误,请老师指教一下

正在回答

登陆购买课程后可参与讨论,去登陆

8回答

同学的报错信息中有这样一个提示:

http://img1.sycdn.imooc.com//climg/5b852bec0001f76706960083.jpg

而同学代码中定义Controller的注解是这样的:
http://img1.sycdn.imooc.com//climg/5b852c120001c46b02500049.jpg

所以同学在访问userController时,这级目录应该是小写的user;

如果使用User来访问,需要把注解改为@Controller("UserController")

祝学习愉快!

提问者 error__404 2018-08-28 16:48:19

UserController:

package com.imooc.hospital.controller;

import com.imooc.hospital.entity.User;
import com.imooc.hospital.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@Controller("userController")
public class UserController {
   @Autowired
   private UserService userService;

   //      /toLogin.do
   public void toLogin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       request.getRequestDispatcher("../login.jsp").forward(request,response);
   }
   public void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       String account = request.getParameter("username");
       String password = request.getParameter("password");

       User user = userService.login(account,password);
       if (user == null){
           response.sendRedirect("toLogin.do");
       }else {
           //存放在session中,先提取session
           HttpSession session = request.getSession();
           session.setAttribute("USER",user);
           response.sendRedirect("main.do");
       }
   }
   public void logout(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       //存放在session中,先提取session在进行提取
       HttpSession session = request.getSession();
       session.setAttribute("USER", null);
       response.sendRedirect("toLogin.do");
   }
   // main.do
   public void main(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       request.getRequestDispatcher("../category.jsp").forward(request,response);
   }

}

 DispatcherServlet:

package com.imooc.hospital.global;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class DispatcherServlet extends GenericServlet {
   //访问IOC容器,创建Application对象
   private ApplicationContext context;

   public void init() throws ServletException {
       //采用init方法,在初始化阶段赋值
       super.init();
       context = new ClassPathXmlApplicationContext("spring.xml");

   }

   public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

       HttpServletRequest request = (HttpServletRequest) servletRequest;
       HttpServletResponse response = (HttpServletResponse) servletResponse;

       String path = request.getServletPath().substring(1);
       String beanName = null;
       String methodName = null;

       int index = path.indexOf('/');
       System.out.println("创建成功");

       if (index != -1) {
           beanName = path.substring(0,index) + "Controller";
           methodName = path.substring(index + 1, path.indexOf(".do"));
       } else {
           beanName = "userController";
           methodName = path.substring(0, path.indexOf(".do"));

       }
       Object obj = context.getBean(beanName);
       try {
           Method method = obj.getClass().getMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
           method.invoke(obj, request, response);
       } catch (NoSuchMethodException e) {
           e.printStackTrace();
       } catch (IllegalAccessException e) {
           e.printStackTrace();
       } catch (InvocationTargetException e) {
           e.printStackTrace();
       }
   }
}

//EncodingFilter:

package com.imooc.hospital.global;

import javax.servlet.*;
import java.io.IOException;

public class EncodingFilter implements Filter {

   private String encoding = "UTF-8";

   public void init(FilterConfig filterConfig) throws ServletException {
       if (filterConfig.getInitParameter("ENCODING") != null)
           encoding = filterConfig.getInitParameter("ENCODING");
   }

   public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
       servletRequest.setCharacterEncoding(encoding);
       servletResponse.setCharacterEncoding(encoding);
       filterChain.doFilter(servletRequest, servletResponse);
   }

   public void destroy() {
       encoding = null;
   }
}

LoginFilter:

package com.imooc.hospital.global;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

public class LoginFilter implements Filter {
   @Override
   public void init(FilterConfig filterConfig) throws ServletException {

   }

   @Override
   public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
       HttpServletRequest request = (HttpServletRequest) servletRequest;
       HttpServletResponse response = (HttpServletResponse) servletResponse;

       String path = request.getServletPath();
       if (path.toLowerCase().indexOf("login")!=-1){
           filterChain.doFilter(request,response);
       }else {
           HttpSession session = request.getSession();
           Object obj = session.getAttribute("USER");
           if (obj!=null){
               filterChain.doFilter(request,response);
           }else {
               response.sendRedirect(request.getContextPath()+"/toLogin.do");
           }
       }
   }

   @Override
   public void destroy() {

   }
}

User:

package com.imooc.hospital.entity;

public class User {
   private Integer id;
   private String username;
   private String password;

   public Integer getId() {
       return id;
   }

   public void setId(Integer id) {
       this.id = id;
   }

   public String getUsername() {
       return username;
   }

   public void setUsername(String username) {
       this.username = username;
   }

   public String getPassword() {
       return password;
   }

   public void setPassword(String password) {
       this.password = password;
   }
}

UserDao:

package com.imooc.hospital.dao;

import com.imooc.hospital.entity.User;
import org.springframework.stereotype.Repository;


@Repository("userDao")
public interface UserDao {
   User selectByName(String username);
}

UserService:

package com.imooc.hospital.service;

import com.imooc.hospital.entity.User;

public interface UserService {
   User login(String username, String password);
}

UserServiceImpl:

package com.imooc.hospital.service.Impl;

import com.imooc.hospital.dao.UserDao;
import com.imooc.hospital.entity.User;
import com.imooc.hospital.service.UserService;
import com.mysql.cj.x.protobuf.MysqlxDatatypes;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service("userService")
public class UserServiceImpl implements UserService {
   @Autowired
   private UserDao userDao;


   public User login(String username, String password) {
       User user = userDao.selectByName(username);
       if (user == null)return null;
       if (user.getPassword().equals(password))return user;
       return null;
   }

}
UserDao.xml:

<?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.hospital.dao.UserDao">
   <resultMap id="resultMap" type="User">
       <id property="id" column="id" javaType="Integer"/>
       <result property="username" column="username" javaType="String"/>
       <result property="password" column="password" javaType="String"/>
   </resultMap>

   <select id="selectByName" parameterType="String" resultMap="resultMap">
       select * from Users where username = #{username}
   </select>

</mapper>

http://img1.sycdn.imooc.com//climg/5b850c0e000188c705460644.jpg

http://img1.sycdn.imooc.com//climg/5b850c210001ae9305030459.jpg

  • 提问者 error__404 #1
    我得出的结论是在DispatcherServelet中,在beanName = path.substring(0,index) + "Controller";前面改为String path1 = path.toLowerCase();beanName = path1.substring(0,index) + "Controller";就可以运行,但在之前老师讲的项目里并不需要转化为小写,不明白为什么。
    2018-08-28 16:52:00
好帮手慕阿莹 2018-08-28 15:36:05

建议同学把相关代码都贴全一下,例如jsp代码(标明是哪个jsp),从登陆到访问UserController的相关代码都贴全一些,我们运行一下你的代码。并贴一下你项目目录的结构截图。

祝学习愉快。

好帮手慕阿莹 2018-08-28 10:45:53

建议同学把jdk版本换成jdk 8 的版本试试。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 error__404 #1
    换版本出现了一个问题:、 Error:Cannot run program "E:\java\jdk\bin\java.exe" (in directory "C:\Users\79374\.IntelliJIdea2018.1\system\compile-server"): CreateProcess error=2, 系统找不到指定的文件。这是为什么
    2018-08-28 12:22:36
  • 提问者 error__404 #2
    解决了,但最初的问题还在,还是找不到UserController的bean
    2018-08-28 13:46:25
提问者 error__404 2018-08-27 19:58:34

这是tomcat Localhost Log:

27-Aug-2018 19:57:37.693 严重 [http-nio-8080-exec-1] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [Global] in context with path [/hospital] threw exception
 org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'UserController' available
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:685)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1210)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1089)
    at com.imooc.hospital.global.DispatcherServlet.service(DispatcherServlet.java:63)
    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:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.imooc.hospital.global.LoginFilter.doFilter(LoginFilter.java:25)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.imooc.hospital.global.EncodingFilter.doFilter(EncodingFilter.java:18)
    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:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:764)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1388)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:844)

27-Aug-2018 19:57:38.850 严重 [http-nio-8080-exec-4] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [Global] in context with path [/hospital] threw exception
 org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'UserController' available
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:685)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1210)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1089)
    at com.imooc.hospital.global.DispatcherServlet.service(DispatcherServlet.java:63)
    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:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.imooc.hospital.global.LoginFilter.doFilter(LoginFilter.java:25)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at com.imooc.hospital.global.EncodingFilter.doFilter(EncodingFilter.java:18)
    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:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:764)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1388)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:844)


chrismorgen 2018-08-27 19:25:39

建议同学看看pom文件中是否有报错信息。

http://img1.sycdn.imooc.com//climg/5b83def5000142e805950130.jpg

然后在看一下控制台中间的Tomcat Localhost Log中都打印什么信息了。建议粘贴出来,另外同学使用的jdk版本是多少的?

http://img1.sycdn.imooc.com//climg/5b83df0c0001939904910176.jpg

  • 提问者 error__404 #1
    我的jdk是10.0.2
    2018-08-27 19:52:15
  • 提问者 error__404 #2
    多了一个module,删除后出的问题是: E:\studyImooc\hospital>mvn compile [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] hospital [INFO] hos_service [INFO] hos_hou Maven Webapp [INFO] hos_hou Maven Webapp [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building hospital 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building hos_service 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ hos_service --- [WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent! [INFO] Copying 2 resources [INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ hos_service ---
    2018-08-27 19:52:32
  • 提问者 error__404 #3
    [INFO] Changes detected - recompiling the module! [WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent! [INFO] Compiling 4 source files to E:\studyImooc\hospital\hos_service\target\classes [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] 不再支持源选项 5。请使用 6 或更高版本。 [ERROR] 不再支持目标选项 1.5。请使用 1.6 或更高版本。 [INFO] 2 errors [INFO] ------------------------------------------------------------- [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] hospital ........................................... SUCCESS [ 0.004 s] [INFO] hos_service ........................................ FAILURE [ 0.989 s] [INFO] hos_hou Maven Webapp ............................... SKIPPED [INFO] hos_hou Maven Webapp ............................... SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.087 s
    2018-08-27 19:53:48
一叶知秋519 2018-08-27 17:09:10

建议同学在IDEA的Terminal窗口下执行:mvn  compile;对项目进行重新编译,重新编译以后再运行项目看是否还有类似问题~~

如果还有问题,可以再次提问~

祝学习愉快!

  • 提问者 error__404 #1
    出了一个错误 :\studyImooc\hospital>mvn -compile [INFO] Scanning for projects... [ERROR] [ERROR] Some problems were encountered while processing the POMs: [ERROR] 'modules.module[3]' specifies duplicate child module hos_qian @ line 15, column 17 @ [ERROR] The build could not read 1 project -> [Help 1] [ERROR] [ERROR] The project com.imooc:hospital:1.0-SNAPSHOT (E:\studyImooc\hospital\pom.xml) has 1 error [ERROR] 'modules.module[3]' specifies duplicate child module hos_qian @ line 15, column 17 [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
    2018-08-27 18:49:54
  • 提问者 error__404 #2
    看不出哪里错了
    2018-08-27 18:51:09
好帮手慕珊 2018-08-27 11:31:58

把下图中选中的.service去掉,然后再试试。祝学习愉快!

http://img1.sycdn.imooc.com//climg/5b83709e0001bef306920076.jpg

  • 提问者 error__404 #1
    HTTP Status 500 – Internal Server Error Type Exception Report Message No bean named 'UserController' available Description The server encountered an unexpected condition that prevented it from fulfilling the request. Exception org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'UserController' available org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:685) org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1210) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1089) com.imooc.hospital.global.DispatcherServlet.service(DispatcherServlet.java:63) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) com.imooc.hospital.global.LoginFilter.doFilter(LoginFilter.java:25) com.imooc.hospital.global.EncodingFilter.doFilter(EncodingFilter.java:18) Note The full stack trace of the root cause is available in the server logs. Apache Tomcat/9.0.10 还是报错啊,老师。是不是我核心控制器的截取beanName有问题啊
    2018-08-27 12:03:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师