Giter Club home page Giter Club logo

springmvc-mybatis-shiro-redis-0.2's Introduction

本项目详细介绍请看:http://www.sojson.com/shiro (强烈推荐)

Demo已经部署到线上,地址是http://shiro.itboy.net,
管理员帐号:admin,密码:sojson.com 如果密码错误,请用sojson。
PS:你可以注册自己的帐号,然后用管理员赋权限给你自己的帐号,但是,每20分钟会把数据初始化一次。建议自己下载源码,让Demo跑起来,然后跑的更快,有问题加群解决。

声明:
本人提供这个Shiro + SpringMvc + Mybatis + Redis 的Demo 本着学习的态度,如果有欠缺和不足的地方,给予指正,并且多多包涵。
“去其糟粕取其精华”。如果觉得写的好的地方就给个赞,写的不好的地方,也请多多包涵。

使用过程:

1.创建数据库。
创建语句		   :tables.sql

2.插入初始化数据
插入初始化数据:init.data.sql


3.运行。


管理员帐号:admin
密码:sojson
ps:定时任务的sql会把密码改变为sojson.com 


新版本说明:http://www.sojson.com/blog/164.htmlhttp://www.sojson.com/blog/165.html


主要解决是之前说的问题:Shiro 教程,关于最近反应的相关异常问题,解决方法合集。

项目在本页面的附件中提取。

一、Cache配置修改。

配置文件(spring-cache.xml )中已经修改为如下配置:

    <!-- redis 配置,也可以把配置挪到properties配置文件中,再读取 -->
    <bean id="jedisPool" class="redis.clients.jedis.JedisPool">
    	<constructor-arg index="0" ref="jedisPoolConfig" />
        <constructor-arg index="2" value="6379"  name="port" type="int"/>
        <constructor-arg index="3" value="5000"  name="timeout" type="int"/>
        <constructor-arg index="1" value="127.0.0.1" name="host" type="java.lang.String"/>
    </bean>
    <!-- 
    	这种 arguments 构造的方式,之前配置有缺点。
    	这里之前的配置有问题,因为参数类型不一致,有时候jar和环境的问题,导致参数根据index对应,会处理问题,
    	理论上加另一个 name,就可以解决,现在把name 和type都加上,更保险。
     -->

二、登录获取上一个URL地址报错。

当没有获取到退出前的request ,为null 的时候会报错。在(UserLoginController.java  )135行处有所修改。

    /**
     * shiro 获取登录之前的地址
     * 之前0.1版本这个没判断空。
     */
    SavedRequest savedRequest = WebUtils.getSavedRequest(request);
    String url = null ;
    if(null != savedRequest){
    	url = savedRequest.getRequestUrl();
    }
    /**
     * 我们平常用的获取上一个请求的方式,在Session不一致的情况下是获取不到的
     * String url = (String) request.getAttribute(WebUtils.FORWARD_REQUEST_URI_ATTRIBUTE);
     */

三、删除了配置文件中的cookie写入域的问题。

在配置文件里(spring-shiro.xml )中的配置有所修改。

    <!-- 会话Cookie模板 -->
    <bean id="sessionIdCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
    	<!--cookie的name,我故意取名叫xxxxbaidu -->
        <constructor-arg value="v_v-s-baidu"/>
        <property name="httpOnly" value="true"/>
        <!--cookie的有效时间 -->
        <property name="maxAge" value="-1"/>
        <!-- 配置存储Session Cookie的domain为 一级域名
        <property name="domain" value=".itboy.net"/>
         -->
    </bean>

上面配置是去掉了 Session  的存储Key 的作用域,之前设置的.itboy.net  ,是写到当前域名的 一级域名  下,这样就可以做到N 个 二级域名  下,三级、四级....下 Session  都是共享的。

    <!-- 用户信息记住我功能的相关配置 -->
    <bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
        <constructor-arg value="v_v-re-baidu"/>
        <property name="httpOnly" value="true"/>
        <!-- 配置存储rememberMe Cookie的domain为 一级域名
        <property name="domain" value=".itboy.net"/>
         -->
        <property name="maxAge" value="2592000"/><!-- 30天时间,记住我30天 -->
    </bean>

记住我登录的信息配置。和上面配置是一样的道理,可以在相同 一级域名  下的所有域名都可以获取到登录的信息。
四、简单实现了单个帐号只能在一处登录。

我们在其他的系统中可以看到,单个帐号只允许一人使用,在A处登录了,B处再登录,那A处就被踢出了。如下图所示。

但是此功能不是很完美,当A处被踢出后,再重新登录,这时候B处反应有点慢,具体我还没看,因为是之前加的功能,现在凌晨了,下次我有空再瞧瞧,同学你也可以看看,解决了和我说一声,我把功能修复。
五、修复功能(BUG)
1.修复权限添加功能BUG。

之前功能有问题,每当添加一个权限的时候,默认都给角色为“管理员”的角色默认添加当前新添加的权限。这样达到管理员的权限永远是最大的。由于代码有BUG ,导致所有权限删除了。现已修复。
2.修复项目只能部署到Root目录下的问题。

问题描述:之前项目只能部署到Root 下才能正常运行,目前已经修复,可以带项目路径进行访问了,之前只能这样访问,http://localhost:8080  而不能http://localhost:8080/shiro.demo/ 访问,目前是可以了。

解决方案:在 FreeMarkerViewExtend.java 33行处 增加了BasePath ,通过BasePath 来控制请求目录,在 Freemarker  中可以自由使用,而 JSP  中是直接在 JSP  中获取BasePath 使用。

解决后遗症:因为我们的权限是通过URL 来控制的,那么增加了项目的目录,导致权限不能正确的判断,再加上我们的项目名称(目录)可以自定义,导致更不好判断。

后遗症解决方案:PermissionFilter.java 50行处 解决了这个问题,详情请看代码和注释,其实就是replace 了一下。

    HttpServletRequest httpRequest = ((HttpServletRequest)request);
    /**
     * 此处是改版后,为了兼容项目不需要部署到root下,也可以正常运行,但是权限没设置目前必须到root 的URI,
     * 原因:如果你把这个项目叫 ShiroDemo,那么路径就是 /ShiroDemo/xxxx.shtml ,那另外一个人使用,又叫Shiro_Demo,那么就要这么控制/Shiro_Demo/xxxx.shtml 
     * 理解了吗?
     * 所以这里替换了一下,使用根目录开始的URI
     */
    String uri = httpRequest.getRequestURI();//获取URI
    String basePath = httpRequest.getContextPath();//获取basePath
    if(null != uri && uri.startsWith(basePath)){
    	uri = uri.replace(basePath, "");
    }

3.项目启动的时候报错,关于JNDI的错误提示。

其实也不是错,但是看着不舒服,所以还得解决这个问题。解决这个问题需要在web.xml 中的开始部位加入以下代码。

    <context-param>
    	<param-name>spring.profiles.active</param-name>
    	<param-value>dev</param-value>
    </context-param>
    <context-param>
    	<param-name>spring.profiles.default</param-name>
    	<param-value>dev</param-value>
    </context-param>
    <context-param>
    	<param-name>spring.liveBeansView.mbeanDomain</param-name>
    	<param-value>dev</param-value>
    </context-param>

4.项目Maven打包问题。

打包的时候,不同版本的 Eclipse  还有IDEA 会有打包打不进去Mapper.xml 文件,这个时候要加如下代码(群里同学提供的)。

    <resources>
    	<resource>
    		<directory>src/main/java</directory>
    		<includes>
    			<include>**/*.properties</include>
    			<include>**/*.xml</include>
    		</includes>
    		<filtering>false</filtering>
    	</resource>
    </resources>

在<build> 标签内加入即可,如果还是不能解决,那么请你加群(改名后)说明你的问题,有人会回答你。
5.Tomcat7以上在访问JSP页面的时候,提示JSTL错误。

这个错误是因为Tomcat7 中没有 JSTL  的jar包,现在已经在项目pom.xml 中增加了如下 jar  的引入管理。

    <dependency>
    	<groupId>javax.servlet</groupId>
    	<artifactId>jstl</artifactId>
    	<version>1.2</version>
    </dependency>
    <dependency>
    	<groupId>javax.servlet</groupId>
    	<artifactId>jsp-api</artifactId>
    	<version>2.0</version>
    	<scope>provided</scope>
    </dependency>

如果还是不能解决问题,请在官方群(群号:259217951)内搜索“jstl” 如图下载依赖包。

springmvc-mybatis-shiro-redis-0.2's People

Contributors

baichengzhou avatar dependabot[bot] avatar heshengbang avatar sky5454 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

springmvc-mybatis-shiro-redis-0.2's Issues

发现一个bug

在修改用户名信息比如昵称的时候,页面不会动态更新,而是要等下次登陆才会更新。

偶尔发现的小缺陷

在用户进行登陆的时候,如果抛出异常信息,会提示用户的账户或者密码错误,其实用的账户密码均正确,但是异常处理中 却更改了 将 map中的状态改编成了 500,原来的200 就失效了。这样的提示不是很好,一个exception 太笼统。具体的代码是
package com.sojson.user.controller;中的UserLoginController 189-193代码行,一直提示用户名或密码错误,但是打断点,数据没有错误,由于自己添加的测试信息抛出了异常,才导致的错误。

loadFilterChainDefinitions方法有时突然执行,但执行完后会报错

1、loadFilterChainDefinitions方法有时突然执行,除了项目启动时执行一次加载shiro_base_auth文件之外,还有那个入口会执行loadFilterChainDefinitions方法呢?
2、执行报如下错:
"ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space?这是什么原因呢

一些问题

  1. pom.xml 中没有标明 都是什么包,或者说不友好
    2.为什么要和tomcat绑在一起,jdk也设定好了,无语
    3.shiro中自己定义了过滤器,但是你没有正确的引用kickout,看看bean的名称就知道了。

项目集群和退出登陆

1这个项目中用到了session ,默认情况下 session 在集群下是会出错 的 ,这里是否还需自己处理 session集群的问题

2 有时候点击退出登陆会提示退出失败 ,看了一下 是loginfiler 返回了 用户未登陆并且是Ajax 请求,如果是未登录 我刷新页面应该跳转到登陆页 实际并没有

pom文件问题

  1. pom文件并没有把maven所需要的plugins插件依赖加进去。
  2. pom文件并没有把resources下的文件引入进去
  3. redis启动需要把参数加进去,而且你的redis配置文件需要改成redis.conf,而不是redis.window.conf
  4. 数据库脚本导入不对,你可以把readMe重新写一下
  5. 我遇到的问题是tomcat日志输出不了,解决方案是在web-inf/classes下面新建logging.properties,填入如下内容:handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

############################################################

Handler specific properties.

Describes specific configuration info for Handlers.

############################################################

org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = error-debug.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

后台接收json

在用户登陆的时候,/u/login.ftl 页面中的ajax传送的是 一个 包括用户名 ,密码的json对象,后台
UserLoginController类中的submitLogin(UUser, Boolean, HttpServletRequest) 在使用 UUser的时候怎么没有添加@requestBody 注解呢? 不明白。。。。。

新的小问题

  1. 用户的修改个人资料,虽然数据库中显示已经修改成功,但是页面显示还是旧数据
    2.楼主那个json的问题还没有解答
    3。暂时没找到

eclipse maven 打包 tomcat 部署

23-Jul-2017 22:30:01.565 信息 [localhost-startStop-3] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath
23-Jul-2017 22:30:01.641 信息 [localhost-startStop-3] org.apache.catalina.core.ApplicationContext.log Initializing Spring root WebApplicationContext
23-Jul-2017 22:30:02.559 严重 [localhost-startStop-3] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shiroFilter' defined in class path resource [spring-shiro.xml]: Cannot resolve reference to bean 'securityManager' while setting bean property 'securityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'securityManager' defined in class path resource [spring-shiro.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: AuthenticationToken
Related cause: org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [com.sojson.core.shiro.cache.impl.JedisShiroCacheManager] for bean with name 'jedisShiroCacheManager' defined in class path resource [spring-shiro.xml]: problem with class file or dependent class; nested exception is java.lang.ClassFormatError: Duplicate method name&signature in class file com/sojson/core/shiro/cache/impl/JedisShiroCacheManager
Related cause: org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [com.sojson.core.shiro.cache.JedisShiroSessionRepository] for bean with name 'jedisShiroSessionRepository' defined in class path resource [spring-shiro.xml]: problem with class file or dependent class; nested exception is java.lang.ClassFormatError: Duplicate method name&signature in class file com/sojson/core/shiro/cache/JedisShiroSessionRepository
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1481)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1226)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:240)
at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:687)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:523)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4745)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:952)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1823)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'securityManager' defined in class path resource [spring-shiro.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: AuthenticationToken
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
... 28 more
Caused by: java.lang.NoClassDefFoundError: AuthenticationToken
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.getDeclaredMethods(Class.java:1975)
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:609)
org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [com.sojson.core.shiro.cache.JedisShiroSessionRepository] for bean with name 'jedisShiroSessionRepository' defined in class path resource [spring-shiro.xml]: problem with class file or dependent class; nested exception is java.lang.ClassFormatError: Duplicate method name&signature in class file com/sojson/core/shiro/cache/JedisShiroSessionRepository

项目启动一直报错,而且是数据库链接这里报数据类型转换异常?有遇到过同样问题的人吗?

java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1041)
at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3481)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2445)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2215)
at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:813)
at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)
at sun.reflect.GeneratedConstructorAccessor23.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334)
at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:148)
at com.alibaba.druid.filter.FilterAdapter.connection_connect(FilterAdapter.java:785)
at com.alibaba.druid.filter.FilterEventAdapter.connection_connect(FilterEventAdapter.java:38)
at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:142)
at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:211)
at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:142)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1410)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1464)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:1969)
Caused by: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:992)
... 20 more

同一浏览器登录多用户的问题

在同一个浏览器中打开两个登录页面,先登录一个admin ,然后在登录一个用户,再去刷新admin的页面时,会发现已经变成了第二个登录的用户信息了,这个有没有什么好一点的办法解决一下呢

redis和 shiro源码加载

问题一: redis中都加载了什么数据,我看到的数据很奇怪。

问题二 :还有请教一个没解决的问题,我想要看一下shiro的源码,maven已经下载了相关的源码,但是并没有加载。这样的问题只是存在shiro中,其他的框架都正常加载源码。不知道你能加载源码么?

角色类型有什么作用

CREATE TABLE u_role (
id bigint(20) NOT NULL AUTO_INCREMENT,
name varchar(32) DEFAULT NULL COMMENT '角色名称',
type varchar(10) DEFAULT NULL COMMENT '角色类型',
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Eclipse导入时提示这不是open project

我尝试着用eclipse直接import archive file,但是eclipse提示我这个archive file并不是open project。看文件夹得名字我相信这个东西应该是从某个IDE中export出来的,但是为什么我import不了呢。。。。。

首页一访问,Tomcat就报错, 自动stop , 然后就退出了cmd窗口

redis 也配置好了,数据库也初始化了,启动也是没问题的。应用直接部署在ROOT下。但是,浏览器访问 http://localhost:8080/ 的时候, Tomcat就出错, 然后自动stop 了, 好奇怪啊。 有谁遇到过吗? 或者我配置哪里错了?

日志为:

六月 29, 2017 2:22:30 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory D:\program\test\apache-tomcat-7.0.59\webapps\ROOT has finished in 4,412 ms
六月 29, 2017 2:22:30 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
六月 29, 2017 2:22:30 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
六月 29, 2017 2:22:30 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 4447 ms
六月 29, 2017 2:26:17 下午 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["http-bio-8080"]
六月 29, 2017 2:26:17 下午 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["ajp-bio-8009"]
六月 29, 2017 2:26:17 下午 org.apache.catalina.core.StandardService stopInternal
信息: Stopping service Catalina
六月 29, 2017 2:26:17 下午 org.apache.catalina.core.StandardWrapper unload
信息: Waiting for 1 instance(s) to be deallocated for Servlet [springMvc]
六月 29, 2017 2:26:18 下午 org.apache.catalina.core.StandardWrapper unload
信息: Waiting for 1 instance(s) to be deallocated for Servlet [springMvc]
六月 29, 2017 2:26:19 下午 org.apache.catalina.core.StandardWrapper unload
信息: Waiting for 1 instance(s) to be deallocated for Servlet [springMvc]
六月 29, 2017 2:26:19 下午 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
严重: The web application [] registered the JDBC driver [com.alibaba.druid.proxy.DruidDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
六月 29, 2017 2:26:19 下午 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
严重: The web application [] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
六月 29, 2017 2:26:19 下午 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
严重: The web application [] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak.
六月 29, 2017 2:26:19 下午 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
严重: The web application [] is still processing a request that has yet to finish. This is very likely to create a memory leak. You can control the time allowed for requests to finish by using the unloadDelay attribute of the standard Context implementation.
六月 29, 2017 2:26:19 下午 org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
严重: The web application [] created a ThreadLocal with key of type [org.apache.shiro.util.ThreadContext.InheritableThreadLocalMap] (value [org.apache.shiro.util.ThreadContext$InheritableThreadLocalMap@5ff3d6b7]) and a value of type [java.util.HashMap] (value [{org.apache.shiro.util.ThreadContext_SUBJECT_KEY=org.apache.shiro.subject.support.DelegatingSubject@3267354d}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
六月 29, 2017 2:26:19 下午 org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
严重: The web application [] created a ThreadLocal with key of type [org.apache.shiro.util.ThreadContext.InheritableThreadLocalMap] (value [org.apache.shiro.util.ThreadContext$InheritableThreadLocalMap@5ff3d6b7]) and a value of type [java.util.HashMap] (value [{org.apache.shiro.util.ThreadContext_SUBJECT_KEY=org.apache.shiro.subject.support.DelegatingSubject@5db7f497}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
六月 29, 2017 2:26:19 下午 org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
严重: The web application [] created a ThreadLocal with key of type [org.apache.shiro.util.ThreadContext.InheritableThreadLocalMap] (value [org.apache.shiro.util.ThreadContext$InheritableThreadLocalMap@5ff3d6b7]) and a value of type [java.util.HashMap] (value [{org.apache.shiro.util.ThreadContext_SUBJECT_KEY=org.apache.shiro.subject.support.DelegatingSubject@5db7f497}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
六月 29, 2017 2:26:19 下午 org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
严重: The web application [] created a ThreadLocal with key of type [org.apache.shiro.util.ThreadContext.InheritableThreadLocalMap] (value [org.apache.shiro.util.ThreadContext$InheritableThreadLocalMap@5ff3d6b7]) and a value of type [java.util.HashMap] (value [{org.apache.shiro.util.ThreadContext_SUBJECT_KEY=org.apache.shiro.subject.support.DelegatingSubject@3267354d}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
六月 29, 2017 2:26:19 下午 org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
严重: The web application [] created a ThreadLocal with key of type [org.apache.shiro.util.ThreadContext.InheritableThreadLocalMap] (value [org.apache.shiro.util.ThreadContext$InheritableThreadLocalMap@5ff3d6b7]) and a value of type [java.util.HashMap] (value [{org.apache.shiro.util.ThreadContext_SUBJECT_KEY=org.apache.shiro.subject.support.DelegatingSubject@3267354d}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
六月 29, 2017 2:26:19 下午 org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
严重: The web application [] created a ThreadLocal with key of type [org.apache.shiro.util.ThreadContext.InheritableThreadLocalMap] (value [org.apache.shiro.util.ThreadContext$InheritableThreadLocalMap@5ff3d6b7]) and a value of type [java.util.HashMap] (value [{org.apache.shiro.util.ThreadContext_SUBJECT_KEY=org.apache.shiro.subject.support.DelegatingSubject@5db7f497}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
六月 29, 2017 2:26:19 下午 org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
严重: The web application [] created a ThreadLocal with key of type [org.apache.shiro.util.ThreadContext.InheritableThreadLocalMap] (value [org.apache.shiro.util.ThreadContext$InheritableThreadLocalMap@5ff3d6b7]) and a value of type [java.util.HashMap] (value [{org.apache.shiro.util.ThreadContext_SECURITY_MANAGER_KEY=org.apache.shiro.web.mgt.DefaultWebSecurityManager@278bd2f7, org.apache.shiro.util.ThreadContext_SUBJECT_KEY=org.apache.shiro.web.subject.support.WebDelegatingSubject@2ccd4616}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
六月 29, 2017 2:26:20 下午 org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
严重: The web application [] created a ThreadLocal with key of type [org.apache.shiro.util.ThreadContext.InheritableThreadLocalMap] (value [org.apache.shiro.util.ThreadContext$InheritableThreadLocalMap@5ff3d6b7]) and a value of type [java.util.HashMap] (value [{org.apache.shiro.util.ThreadContext_SUBJECT_KEY=org.apache.shiro.subject.support.DelegatingSubject@5db7f497}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
六月 29, 2017 2:26:20 下午 org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
严重: The web application [] created a ThreadLocal with key of type [org.apache.shiro.util.ThreadContext.InheritableThreadLocalMap] (value [org.apache.shiro.util.ThreadContext$InheritableThreadLocalMap@5ff3d6b7]) and a value of type [java.util.HashMap] (value [{org.apache.shiro.util.ThreadContext_SUBJECT_KEY=org.apache.shiro.subject.support.DelegatingSubject@3267354d}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
六月 29, 2017 2:26:20 下午 org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
严重: The web application [] created a ThreadLocal with key of type [org.apache.shiro.util.ThreadContext.InheritableThreadLocalMap] (value [org.apache.shiro.util.ThreadContext$InheritableThreadLocalMap@5ff3d6b7]) and a value of type [java.util.HashMap] (value [{org.apache.shiro.util.ThreadContext_SUBJECT_KEY=org.apache.shiro.subject.support.DelegatingSubject@5db7f497}]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
六月 29, 2017 2:26:20 下午 org.apache.coyote.AbstractProtocol stop
信息: Stopping ProtocolHandler ["http-bio-8080"]
六月 29, 2017 2:26:20 下午 org.apache.coyote.AbstractProtocol stop
信息: Stopping ProtocolHandler ["ajp-bio-8009"]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.