NutzCN Logo
问答 shiro和nutz.dao整合ehcache有啥用?
发布于 130天前 作者 老司机 280 次浏览 复制 上一个帖子 下一个帖子
标签:

shiro整合ehcache有啥用?每次差权限还是走的数据库,没看从缓存里直接查啊?还有dao层也是。

来自炫酷的 NutzCN

20 回复

shiro.ini里面配了哪个cache?贴出来看看

daocache只缓存指定表的单表查询

我也是一样的情况啊, 版本1.r.60, 下面贴代码

shiro.ini

[main]
nutzdao_realm = me.cdroid.nutz.shiro.realm.SimpleAuthorizingRealm

authc = org.nutz.integration.shiro.SimpleAuthenticationFilter
authc.loginUrl  = /user/login
logout.redirectUrl= /user/login

cacheManager = org.apache.shiro.cache.ehcache.EhCacheManager
cacheManager.cacheManagerConfigFile=classpath:ehcache.xml
nutzdao_realm.cacheManager = $cacheManager

ehcache.js

var ioc = {
        "cacheManager" : {
            "type" : "net.sf.ehcache.CacheManager",
            "factory" : "net.sf.ehcache.CacheManager#getCacheManager",
            "args" : ["nutz"] // 对应shiro.ini中指定的ehcache.xml中定义的name
        }
        /*
        // 如果不需要shiro初始化的Ehcache, 使用下面的方式配置
        "cacheManager" : {
            "type" : "net.sf.ehcache.CacheManager",
            "factory" : "net.sf.ehcache.CacheManager#create"
        }
         */
};

dao.js

dao : {
            type : "org.nutz.dao.impl.NutDao",
            args : [{refer:"dataSource"}],
            fields : {
                //executor : {refer:"cacheExecutor"}
        		interceptors : [{refer:"cacheExecutor"}, "log"] // 这是1.r.58及以上的写法
            }
        },
        cacheExecutor : {
            type : "org.nutz.plugins.cache.dao.CachedNutDaoExecutor",
            fields : {
                cacheProvider : {refer:"cacheProvider"},
                // 需要缓存的表名
                cachedTableNames : ["t_user_profile",
                                    //"t_user", "t_role", "t_permission", "t_role_permission"
                                   ]
            }
        },
        // 基于Ehcache的DaoCacheProvider
        cacheProvider : {
            type : "org.nutz.plugins.cache.dao.impl.provider.EhcacheDaoCacheProvider",
            fields : {
                cacheManager : {refer:"cacheManager"} // 引用ehcache.js中定义的CacheManager
            },
            events : {
                create : "init"
            }
        }

ehcache.xml

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="false"
    monitoring="autodetect" dynamicConfig="true" name="nutz">
    <!-- <diskStore path="java.io.tmpdir/shiro-ehcache"/> -->
    <defaultCache
            maxElementsInMemory="10000"
            eternal="false"
            timeToIdleSeconds="120"
            timeToLiveSeconds="120"
            overflowToDisk="false"
            diskPersistent="false"
            diskExpiryThreadIntervalSeconds="120"
            />
    <cache name="shiro-activeSessionCache"
           maxElementsInMemory="10000"
           overflowToDisk="true"
           eternal="true"
           timeToLiveSeconds="0"
           timeToIdleSeconds="0"
           diskPersistent="true"
           diskExpiryThreadIntervalSeconds="600"/>
</ehcache>

这个去掉注释

//"t_user", "t_role", "t_permission", "t_role_permission"

我主要是在测试那个userProfile, 是在获取数据的时候需要手动操作cacheManager??

没看懂,这帖子说的是权限相关表没有走缓存.

@wendal 我是根据nutzBook坐下来的,就是启动的时候也有说缓存启动了,但是我刷新userProfile的时候,还是走数据库,不是从缓存获取的,所以我是想问一下,是不是需要手动操作cacheManager还是怎么样。。

启用一下调试信息, CachedNutDaoExecutor.DEBUG=true, 然后贴日志

@wendal

[INFO ] 19:03:19.976 org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(EnvironmentLoader.java:128) - Starting Shiro environment initialization.
[DEBUG] 19:03:19.986 org.apache.shiro.web.env.IniWebEnvironment.init(IniWebEnvironment.java:76) - Checking any specified config locations.
[DEBUG] 19:03:19.987 org.apache.shiro.web.env.IniWebEnvironment.init(IniWebEnvironment.java:81) - No INI instance or config locations specified.  Trying default config locations.
[DEBUG] 19:03:19.991 org.apache.shiro.io.ResourceUtils.loadFromClassPath(ResourceUtils.java:159) - Opening resource from class path [shiro.ini]
[DEBUG] 19:03:19.995 org.apache.shiro.config.Ini.load(Ini.java:342) - Parsing [main]
[DEBUG] 19:03:19.996 org.apache.shiro.config.Ini.load(Ini.java:342) - Parsing [urls]
[DEBUG] 19:03:19.997 org.apache.shiro.web.env.IniWebEnvironment.getDefaultIni(IniWebEnvironment.java:136) - Discovered non-empty INI configuration at location 'classpath:shiro.ini'.  Using for configuration.
[DEBUG] 19:03:20.001 org.apache.shiro.config.IniFactorySupport.createInstance(IniFactorySupport.java:122) - Creating instance from Ini [sections=main,urls]
[INFO ] 19:03:20.065 org.apache.shiro.config.ReflectionBuilder.createNewInstance(ReflectionBuilder.java:138) - An instance with name 'authc' already exists.  Redefining this object as a new instance of type org.nutz.integration.shiro.SimpleAuthenticationFilter
[DEBUG] 19:03:20.106 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: false
[DEBUG] 19:03:20.106 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Boolean' value 'false' to type 'Boolean'
[DEBUG] 19:03:20.106 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Boolean
[DEBUG] 19:03:20.109 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: 0
[DEBUG] 19:03:20.109 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Integer' value '0' to type 'Byte'
[DEBUG] 19:03:20.109 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:171) -     Converted to Byte value '0'
[DEBUG] 19:03:20.110 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value:  
[DEBUG] 19:03:20.111 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Character' value ' ' to type 'Character'
[DEBUG] 19:03:20.111 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Character
[DEBUG] 19:03:20.112 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: 0
[DEBUG] 19:03:20.112 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Integer' value '0' to type 'Double'
[DEBUG] 19:03:20.112 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:171) -     Converted to Double value '0.0'
[DEBUG] 19:03:20.113 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: 0
[DEBUG] 19:03:20.113 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Integer' value '0' to type 'Float'
[DEBUG] 19:03:20.113 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:171) -     Converted to Float value '0.0'
[DEBUG] 19:03:20.113 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: 0
[DEBUG] 19:03:20.114 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Integer' value '0' to type 'Integer'
[DEBUG] 19:03:20.114 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Integer
[DEBUG] 19:03:20.114 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: 0
[DEBUG] 19:03:20.115 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Integer' value '0' to type 'Long'
[DEBUG] 19:03:20.115 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:171) -     Converted to Long value '0'
[DEBUG] 19:03:20.115 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: 0
[DEBUG] 19:03:20.115 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Integer' value '0' to type 'Short'
[DEBUG] 19:03:20.116 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:171) -     Converted to Short value '0'
[DEBUG] 19:03:20.117 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: 0.0
[DEBUG] 19:03:20.117 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'BigDecimal' value '0.0' to type 'BigDecimal'
[DEBUG] 19:03:20.117 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a BigDecimal
[DEBUG] 19:03:20.118 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: 0
[DEBUG] 19:03:20.118 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'BigInteger' value '0' to type 'BigInteger'
[DEBUG] 19:03:20.118 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a BigInteger
[DEBUG] 19:03:20.118 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: false
[DEBUG] 19:03:20.118 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Boolean' value 'false' to type 'Boolean'
[DEBUG] 19:03:20.118 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Boolean
[DEBUG] 19:03:20.118 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: 0
[DEBUG] 19:03:20.119 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Integer' value '0' to type 'Byte'
[DEBUG] 19:03:20.119 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:171) -     Converted to Byte value '0'
[DEBUG] 19:03:20.119 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value:  
[DEBUG] 19:03:20.119 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Character' value ' ' to type 'Character'
[DEBUG] 19:03:20.120 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Character
[DEBUG] 19:03:20.120 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: 0
[DEBUG] 19:03:20.120 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Integer' value '0' to type 'Double'
[DEBUG] 19:03:20.120 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:171) -     Converted to Double value '0.0'
[DEBUG] 19:03:20.121 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: 0
[DEBUG] 19:03:20.121 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Integer' value '0' to type 'Float'
[DEBUG] 19:03:20.121 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:171) -     Converted to Float value '0.0'
[DEBUG] 19:03:20.121 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: 0
[DEBUG] 19:03:20.121 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Integer' value '0' to type 'Integer'
[DEBUG] 19:03:20.122 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Integer
[DEBUG] 19:03:20.122 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: 0
[DEBUG] 19:03:20.122 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Integer' value '0' to type 'Long'
[DEBUG] 19:03:20.122 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:171) -     Converted to Long value '0'
[DEBUG] 19:03:20.122 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: 0
[DEBUG] 19:03:20.123 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Integer' value '0' to type 'Short'
[DEBUG] 19:03:20.123 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:171) -     Converted to Short value '0'
[DEBUG] 19:03:20.124 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: 
[DEBUG] 19:03:20.124 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'String' value '' to type 'String'
[DEBUG] 19:03:20.130 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Z@543b0d43
[DEBUG] 19:03:20.130 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'boolean[]' value '[Z@543b0d43' to type 'boolean[]'
[DEBUG] 19:03:20.131 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a boolean[]
[DEBUG] 19:03:20.131 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [B@70e3d4e8
[DEBUG] 19:03:20.131 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'byte[]' value '[B@70e3d4e8' to type 'byte[]'
[DEBUG] 19:03:20.131 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a byte[]
[DEBUG] 19:03:20.131 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [C@7daf053e
[DEBUG] 19:03:20.131 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'char[]' value '[C@7daf053e' to type 'char[]'
[DEBUG] 19:03:20.131 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a char[]
[DEBUG] 19:03:20.131 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [D@6d8169e8
[DEBUG] 19:03:20.132 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'double[]' value '[D@6d8169e8' to type 'double[]'
[DEBUG] 19:03:20.132 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a double[]
[DEBUG] 19:03:20.132 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [F@4b503682
[DEBUG] 19:03:20.132 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'float[]' value '[F@4b503682' to type 'float[]'
[DEBUG] 19:03:20.132 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a float[]
[DEBUG] 19:03:20.132 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [I@7f2ab76e
[DEBUG] 19:03:20.132 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'int[]' value '[I@7f2ab76e' to type 'int[]'
[DEBUG] 19:03:20.133 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a int[]
[DEBUG] 19:03:20.133 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [J@4d70d7fb
[DEBUG] 19:03:20.133 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'long[]' value '[J@4d70d7fb' to type 'long[]'
[DEBUG] 19:03:20.133 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a long[]
[DEBUG] 19:03:20.133 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [S@2b73c775
[DEBUG] 19:03:20.133 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'short[]' value '[S@2b73c775' to type 'short[]'
[DEBUG] 19:03:20.133 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a short[]
[DEBUG] 19:03:20.134 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.math.BigDecimal;@3e2be89c
[DEBUG] 19:03:20.134 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'BigDecimal[]' value '[Ljava.math.BigDecimal;@3e2be89c' to type 'BigDecimal[]'
[DEBUG] 19:03:20.134 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a BigDecimal[]
[DEBUG] 19:03:20.134 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.math.BigInteger;@349eddf9
[DEBUG] 19:03:20.134 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'BigInteger[]' value '[Ljava.math.BigInteger;@349eddf9' to type 'BigInteger[]'
[DEBUG] 19:03:20.134 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a BigInteger[]
[DEBUG] 19:03:20.134 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.lang.Boolean;@29ff216c
[DEBUG] 19:03:20.134 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Boolean[]' value '[Ljava.lang.Boolean;@29ff216c' to type 'Boolean[]'
[DEBUG] 19:03:20.135 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Boolean[]
[DEBUG] 19:03:20.135 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.lang.Byte;@2ceb4efe
[DEBUG] 19:03:20.135 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Byte[]' value '[Ljava.lang.Byte;@2ceb4efe' to type 'Byte[]'
[DEBUG] 19:03:20.135 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Byte[]
[DEBUG] 19:03:20.135 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.lang.Character;@c8f1cbc
[DEBUG] 19:03:20.135 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Character[]' value '[Ljava.lang.Character;@c8f1cbc' to type 'Character[]'
[DEBUG] 19:03:20.135 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Character[]
[DEBUG] 19:03:20.135 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.lang.Double;@60b8da0
[DEBUG] 19:03:20.136 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Double[]' value '[Ljava.lang.Double;@60b8da0' to type 'Double[]'
[DEBUG] 19:03:20.136 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Double[]
[DEBUG] 19:03:20.136 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.lang.Float;@24e3e386
[DEBUG] 19:03:20.136 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Float[]' value '[Ljava.lang.Float;@24e3e386' to type 'Float[]'
[DEBUG] 19:03:20.136 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Float[]
[DEBUG] 19:03:20.137 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.lang.Integer;@72f3c793
[DEBUG] 19:03:20.137 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Integer[]' value '[Ljava.lang.Integer;@72f3c793' to type 'Integer[]'
[DEBUG] 19:03:20.137 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Integer[]
[DEBUG] 19:03:20.137 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.lang.Long;@62b3beda
[DEBUG] 19:03:20.137 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Long[]' value '[Ljava.lang.Long;@62b3beda' to type 'Long[]'
[DEBUG] 19:03:20.137 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Long[]
[DEBUG] 19:03:20.138 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.lang.Short;@6b70cd6
[DEBUG] 19:03:20.138 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Short[]' value '[Ljava.lang.Short;@6b70cd6' to type 'Short[]'
[DEBUG] 19:03:20.138 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Short[]
[DEBUG] 19:03:20.138 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.lang.String;@6701b031
[DEBUG] 19:03:20.138 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'String[]' value '[Ljava.lang.String;@6701b031' to type 'String[]'
[DEBUG] 19:03:20.138 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a String[]
[DEBUG] 19:03:20.138 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.lang.Class;@1fd695cc
[DEBUG] 19:03:20.138 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Class[]' value '[Ljava.lang.Class;@1fd695cc' to type 'Class[]'
[DEBUG] 19:03:20.139 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Class[]
[DEBUG] 19:03:20.139 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.util.Date;@13ab5931
[DEBUG] 19:03:20.139 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Date[]' value '[Ljava.util.Date;@13ab5931' to type 'Date[]'
[DEBUG] 19:03:20.139 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Date[]
[DEBUG] 19:03:20.139 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.util.Calendar;@7d0f42f6
[DEBUG] 19:03:20.139 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'Calendar[]' value '[Ljava.util.Calendar;@7d0f42f6' to type 'Calendar[]'
[DEBUG] 19:03:20.139 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a Calendar[]
[DEBUG] 19:03:20.139 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.io.File;@1aa0fd0f
[DEBUG] 19:03:20.139 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'java.io.File[]' value '[Ljava.io.File;@1aa0fd0f' to type 'java.io.File[]'
[DEBUG] 19:03:20.140 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a java.io.File[]
[DEBUG] 19:03:20.140 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.sql.Date;@8ee522b
[DEBUG] 19:03:20.140 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'java.sql.Date[]' value '[Ljava.sql.Date;@8ee522b' to type 'java.sql.Date[]'
[DEBUG] 19:03:20.140 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a java.sql.Date[]
[DEBUG] 19:03:20.140 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.sql.Time;@14b518dc
[DEBUG] 19:03:20.140 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'java.sql.Time[]' value '[Ljava.sql.Time;@14b518dc' to type 'java.sql.Time[]'
[DEBUG] 19:03:20.140 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a java.sql.Time[]
[DEBUG] 19:03:20.140 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.sql.Timestamp;@f1f6c01
[DEBUG] 19:03:20.140 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'java.sql.Timestamp[]' value '[Ljava.sql.Timestamp;@f1f6c01' to type 'java.sql.Timestamp[]'
[DEBUG] 19:03:20.141 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a java.sql.Timestamp[]
[DEBUG] 19:03:20.141 org.apache.commons.beanutils.converters.AbstractConverter.setDefaultValue(AbstractConverter.java:353) - Setting default value: [Ljava.net.URL;@35e023f0
[DEBUG] 19:03:20.141 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'java.net.URL[]' value '[Ljava.net.URL;@35e023f0' to type 'java.net.URL[]'
[DEBUG] 19:03:20.141 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:162) -     No conversion required, value is already a java.net.URL[]
[DEBUG] 19:03:20.159 org.apache.commons.beanutils.ConvertUtilsBean.convert(ConvertUtilsBean.java:481) - Convert string '/user/login' to class 'java.lang.String'
[DEBUG] 19:03:20.159 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'String' value '/user/login' to type 'String'
[DEBUG] 19:03:20.163 org.apache.commons.beanutils.ConvertUtilsBean.convert(ConvertUtilsBean.java:481) - Convert string '/user/login' to class 'java.lang.String'
[DEBUG] 19:03:20.164 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'String' value '/user/login' to type 'String'
[DEBUG] 19:03:20.167 org.apache.commons.beanutils.ConvertUtilsBean.convert(ConvertUtilsBean.java:481) - Convert string 'classpath:ehcache.xml' to class 'java.lang.String'
[DEBUG] 19:03:20.167 org.apache.commons.beanutils.converters.AbstractConverter.convert(AbstractConverter.java:140) - Converting 'String' value 'classpath:ehcache.xml' to type 'String'
[DEBUG] 19:03:20.179 org.apache.shiro.config.ReflectionBuilder.resolveReference(ReflectionBuilder.java:238) - Encountered object reference '$cacheManager'.  Looking up object with id 'cacheManager'
[DEBUG] 19:03:20.179 org.apache.shiro.realm.AuthorizingRealm.getAuthorizationCacheLazy(AuthorizingRealm.java:234) - No authorizationCache instance set.  Checking for a cacheManager...
[DEBUG] 19:03:20.180 org.apache.shiro.realm.AuthorizingRealm.getAuthorizationCacheLazy(AuthorizingRealm.java:242) - CacheManager [org.apache.shiro.cache.ehcache.EhCacheManager@35400b1] has been configured.  Building authorization cache named [nutzdao_realm.authorizationCache]
[DEBUG] 19:03:20.180 org.apache.shiro.cache.ehcache.EhCacheManager.ensureCacheManager(EhCacheManager.java:206) - cacheManager property not set.  Constructing CacheManager instance... 
[DEBUG] 19:03:20.188 org.apache.shiro.io.ResourceUtils.loadFromClassPath(ResourceUtils.java:159) - Opening resource from class path [ehcache.xml]
[DEBUG] 19:03:20.191 net.sf.ehcache.config.ConfigurationFactory.parseConfiguration(ConfigurationFactory.java:150) - Configuring ehcache from InputStream
[DEBUG] 19:03:20.209 net.sf.ehcache.config.BeanHandler.setAttribute(BeanHandler.java:271) - Ignoring ehcache attribute xmlns:xsi
[DEBUG] 19:03:20.210 net.sf.ehcache.config.BeanHandler.setAttribute(BeanHandler.java:271) - Ignoring ehcache attribute xsi:noNamespaceSchemaLocation
[DEBUG] 19:03:20.227 net.sf.ehcache.util.PropertyUtil.parseProperties(PropertyUtil.java:87) - propertiesString is null.
[WARN ] 19:03:20.236 net.sf.ehcache.CacheManager.configure(CacheManager.java:759) - One or more caches require a DiskStore but there is no diskStore element configured. Using the default disk store path of C:\Users\CAI\AppData\Local\Temp\. Please explicitly configure the diskStore element in ehcache.xml.
[DEBUG] 19:03:20.237 net.sf.ehcache.config.ConfigurationHelper.createCacheManagerEventListener(ConfigurationHelper.java:189) - No CacheManagerEventListenerFactory class specified. Skipping...
[DEBUG] 19:03:20.312 net.sf.ehcache.Cache.createBootstrapCacheLoader(Cache.java:1044) - No BootstrapCacheLoaderFactory class specified. Skipping...
[DEBUG] 19:03:20.313 net.sf.ehcache.Cache.createCacheWriter(Cache.java:1017) - CacheWriter factory not configured. Skipping...
[DEBUG] 19:03:20.313 net.sf.ehcache.config.ConfigurationHelper.createCacheExceptionHandler(ConfigurationHelper.java:100) - No CacheExceptionHandlerFactory class specified. Skipping...
[DEBUG] 19:03:20.335 net.sf.ehcache.Cache.createBootstrapCacheLoader(Cache.java:1044) - No BootstrapCacheLoaderFactory class specified. Skipping...
[DEBUG] 19:03:20.335 net.sf.ehcache.Cache.createCacheWriter(Cache.java:1017) - CacheWriter factory not configured. Skipping...
[DEBUG] 19:03:20.335 net.sf.ehcache.config.ConfigurationHelper.createCacheExceptionHandler(ConfigurationHelper.java:100) - No CacheExceptionHandlerFactory class specified. Skipping...
[DEBUG] 19:03:20.354 net.sf.ehcache.DiskStorePathManager.resolveAndLockIfNeeded(DiskStorePathManager.java:169) - Using diskstore path C:\Users\CAI\AppData\Local\Temp
[DEBUG] 19:03:20.355 net.sf.ehcache.DiskStorePathManager.resolveAndLockIfNeeded(DiskStorePathManager.java:170) - Holding exclusive lock on C:\Users\CAI\AppData\Local\Temp\.ehcache-diskstore.lock
[DEBUG] 19:03:20.363 net.sf.ehcache.store.disk.DiskStorageFactory.<init>(DiskStorageFactory.java:170) - Matching data file missing (or empty) for index file. Deleting index file C:\Users\CAI\AppData\Local\Temp\shiro-active%0053ession%0043ache.index
[DEBUG] 19:03:20.363 net.sf.ehcache.store.disk.DiskStorageFactory.deleteFile(DiskStorageFactory.java:838) - Failed to delete file shiro-active%0053ession%0043ache.index
[DEBUG] 19:03:20.426 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardPassThruStatistics(ExtendedStatisticsImpl.java:224) - Mocking Pass-Through Statistic: LOCAL_OFFHEAP_SIZE
[DEBUG] 19:03:20.427 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardPassThruStatistics(ExtendedStatisticsImpl.java:224) - Mocking Pass-Through Statistic: LOCAL_OFFHEAP_SIZE_BYTES
[DEBUG] 19:03:20.428 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardPassThruStatistics(ExtendedStatisticsImpl.java:224) - Mocking Pass-Through Statistic: WRITER_QUEUE_LENGTH
[DEBUG] 19:03:20.428 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardPassThruStatistics(ExtendedStatisticsImpl.java:224) - Mocking Pass-Through Statistic: REMOTE_SIZE
[DEBUG] 19:03:20.430 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardPassThruStatistics(ExtendedStatisticsImpl.java:224) - Mocking Pass-Through Statistic: LAST_REJOIN_TIMESTAMP
[DEBUG] 19:03:20.445 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: OFFHEAP_GET
[DEBUG] 19:03:20.446 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: OFFHEAP_PUT
[DEBUG] 19:03:20.447 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: OFFHEAP_REMOVE
[DEBUG] 19:03:20.448 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: XA_COMMIT
[DEBUG] 19:03:20.448 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: XA_ROLLBACK
[DEBUG] 19:03:20.449 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: XA_RECOVERY
[DEBUG] 19:03:20.450 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: CLUSTER_EVENT
[DEBUG] 19:03:20.450 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: NONSTOP
[DEBUG] 19:03:20.456 net.sf.ehcache.Cache.initialise(Cache.java:1262) - Initialised cache: shiro-activeSessionCache
[DEBUG] 19:03:20.457 net.sf.ehcache.config.ConfigurationHelper.createCacheDecorators(ConfigurationHelper.java:334) - CacheDecoratorFactory not configured. Skipping for 'shiro-activeSessionCache'.
[DEBUG] 19:03:20.457 net.sf.ehcache.config.ConfigurationHelper.createDefaultCacheDecorators(ConfigurationHelper.java:364) - CacheDecoratorFactory not configured for defaultCache. Skipping for 'shiro-activeSessionCache'.
[DEBUG] 19:03:20.458 org.apache.shiro.cache.ehcache.EhCacheManager.ensureCacheManager(EhCacheManager.java:219) - implicit cacheManager created successfully.
[INFO ] 19:03:20.458 org.apache.shiro.cache.ehcache.EhCacheManager.getCache(EhCacheManager.java:159) - Cache with name 'nutzdao_realm.authorizationCache' does not yet exist.  Creating now.
[DEBUG] 19:03:20.478 net.sf.ehcache.store.MemoryStore.<init>(MemoryStore.java:180) - Initialized net.sf.ehcache.store.MemoryStore for nutzdao_realm.authorizationCache
[DEBUG] 19:03:20.480 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardPassThruStatistics(ExtendedStatisticsImpl.java:224) - Mocking Pass-Through Statistic: LOCAL_OFFHEAP_SIZE
[DEBUG] 19:03:20.480 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardPassThruStatistics(ExtendedStatisticsImpl.java:224) - Mocking Pass-Through Statistic: LOCAL_OFFHEAP_SIZE_BYTES
[DEBUG] 19:03:20.480 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardPassThruStatistics(ExtendedStatisticsImpl.java:224) - Mocking Pass-Through Statistic: LOCAL_DISK_SIZE
[DEBUG] 19:03:20.481 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardPassThruStatistics(ExtendedStatisticsImpl.java:224) - Mocking Pass-Through Statistic: LOCAL_DISK_SIZE_BYTES
[DEBUG] 19:03:20.481 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardPassThruStatistics(ExtendedStatisticsImpl.java:224) - Mocking Pass-Through Statistic: WRITER_QUEUE_LENGTH
[DEBUG] 19:03:20.481 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardPassThruStatistics(ExtendedStatisticsImpl.java:224) - Mocking Pass-Through Statistic: REMOTE_SIZE
[DEBUG] 19:03:20.481 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardPassThruStatistics(ExtendedStatisticsImpl.java:224) - Mocking Pass-Through Statistic: LAST_REJOIN_TIMESTAMP
[DEBUG] 19:03:20.483 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: OFFHEAP_GET
[DEBUG] 19:03:20.483 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: OFFHEAP_PUT
[DEBUG] 19:03:20.483 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: OFFHEAP_REMOVE
[DEBUG] 19:03:20.483 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: DISK_GET
[DEBUG] 19:03:20.484 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: DISK_PUT
[DEBUG] 19:03:20.484 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: DISK_REMOVE
[DEBUG] 19:03:20.484 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: XA_COMMIT
[DEBUG] 19:03:20.485 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: XA_ROLLBACK
[DEBUG] 19:03:20.485 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: XA_RECOVERY
[DEBUG] 19:03:20.486 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: CLUSTER_EVENT
[DEBUG] 19:03:20.486 net.sf.ehcache.statistics.extended.ExtendedStatisticsImpl.findStandardOperationStatistics(ExtendedStatisticsImpl.java:206) - Mocking Operation Statistic: NONSTOP
[DEBUG] 19:03:20.488 net.sf.ehcache.Cache.initialise(Cache.java:1262) - Initialised cache: nutzdao_realm.authorizationCache
[DEBUG] 19:03:20.489 net.sf.ehcache.config.ConfigurationHelper.createDefaultCacheDecorators(ConfigurationHelper.java:364) - CacheDecoratorFactory not configured for defaultCache. Skipping for 'nutzdao_realm.authorizationCache'.
[INFO ] 19:03:20.489 org.apache.shiro.cache.ehcache.EhCacheManager.getCache(EhCacheManager.java:166) - Added EhCache named [nutzdao_realm.authorizationCache]
[DEBUG] 19:03:20.492 org.apache.shiro.config.IniFactorySupport.createInstance(IniFactorySupport.java:122) - Creating instance from Ini [sections=main,urls]
[DEBUG] 19:03:20.494 org.apache.shiro.web.filter.mgt.DefaultFilterChainManager.createChain(DefaultFilterChainManager.java:127) - Creating chain [/rs/*] from String definition [anon]
[DEBUG] 19:03:20.494 org.apache.shiro.web.filter.mgt.DefaultFilterChainManager.applyChainConfig(DefaultFilterChainManager.java:278) - Attempting to apply path [/rs/*] to filter [anon] with config [null]
[DEBUG] 19:03:20.495 org.apache.shiro.web.filter.mgt.DefaultFilterChainManager.createChain(DefaultFilterChainManager.java:127) - Creating chain [/user/logout] from String definition [logout]
[DEBUG] 19:03:20.495 org.apache.shiro.web.filter.mgt.DefaultFilterChainManager.applyChainConfig(DefaultFilterChainManager.java:278) - Attempting to apply path [/user/logout] to filter [logout] with config [null]
[DEBUG] 19:03:20.495 org.apache.shiro.web.filter.mgt.DefaultFilterChainManager.createChain(DefaultFilterChainManager.java:127) - Creating chain [/user/error] from String definition [anon]
[DEBUG] 19:03:20.495 org.apache.shiro.web.filter.mgt.DefaultFilterChainManager.applyChainConfig(DefaultFilterChainManager.java:278) - Attempting to apply path [/user/error] to filter [anon] with config [null]
[DEBUG] 19:03:20.495 org.apache.shiro.web.filter.mgt.DefaultFilterChainManager.createChain(DefaultFilterChainManager.java:127) - Creating chain [/user/login] from String definition [anon]
[DEBUG] 19:03:20.495 org.apache.shiro.web.filter.mgt.DefaultFilterChainManager.applyChainConfig(DefaultFilterChainManager.java:278) - Attempting to apply path [/user/login] to filter [anon] with config [null]
[DEBUG] 19:03:20.495 org.apache.shiro.web.filter.mgt.DefaultFilterChainManager.createChain(DefaultFilterChainManager.java:127) - Creating chain [/user/profile/active/mail] from String definition [anon]
[DEBUG] 19:03:20.496 org.apache.shiro.web.filter.mgt.DefaultFilterChainManager.applyChainConfig(DefaultFilterChainManager.java:278) - Attempting to apply path [/user/profile/active/mail] to filter [anon] with config [null]
[DEBUG] 19:03:20.496 org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(EnvironmentLoader.java:136) - Published WebEnvironment as ServletContext attribute with name [org.apache.shiro.web.env.EnvironmentLoader.ENVIRONMENT_ATTRIBUTE_KEY]
[INFO ] 19:03:20.496 org.apache.shiro.web.env.EnvironmentLoader.initEnvironment(EnvironmentLoader.java:141) - Shiro environment initialized in 518 ms.
[INFO ] 19:03:20.514 org.nutz.mvc.NutFilter._init(NutFilter.java:81) - NutFilter[nutz] starting ...
[DEBUG] 19:03:20.675 org.nutz.resource.Scans.<init>(Scans.java:509) - Locations for Scans:
[Dir[path=D:\dev\eclipse], Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\nutz-1.r.60.jar], Dir[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\classes], Jar[path=D:\dev\apache-tomcat-7.0.50\bin\bootstrap.jar], Jar[path=D:\dev\apache-tomcat-7.0.50\bin\tomcat-juli.jar], Jar[path=C:\Program Files\Java\jdk1.7.0_75\lib\tools.jar]]
[DEBUG] 19:03:21.069 org.nutz.resource.Scans.init(Scans.java:105) - Locations for Scans:
{D:\dev\eclipse=Dir[path=D:\dev\eclipse], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\nutz-1.r.60.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\nutz-1.r.60.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\classes=Dir[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\classes], D:\dev\apache-tomcat-7.0.50\bin\bootstrap.jar=Jar[path=D:\dev\apache-tomcat-7.0.50\bin\bootstrap.jar], D:\dev\apache-tomcat-7.0.50\bin\tomcat-juli.jar=Jar[path=D:\dev\apache-tomcat-7.0.50\bin\tomcat-juli.jar], C:\Program Files\Java\jdk1.7.0_75\lib\tools.jar=Jar[path=C:\Program Files\Java\jdk1.7.0_75\lib\tools.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\ehcache-2.10.3.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\ehcache-2.10.3.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\druid-1.0.27.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\druid-1.0.27.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\mysql-connector-java-5.1.34.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\mysql-connector-java-5.1.34.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\taglibs-standard-jstlel-1.2.5.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\taglibs-standard-jstlel-1.2.5.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\taglibs-standard-spec-1.2.5.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\taglibs-standard-spec-1.2.5.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\shiro-web-1.3.2.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\shiro-web-1.3.2.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\nutz-plugins-daocache-1.r.60.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\nutz-plugins-daocache-1.r.60.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\javax.servlet.jsp.jstl-api-1.2.1.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\javax.servlet.jsp.jstl-api-1.2.1.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\taglibs-standard-impl-1.2.5.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\taglibs-standard-impl-1.2.5.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\javax.servlet-api-3.1.0.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\javax.servlet-api-3.1.0.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\aopalliance-1.0.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\aopalliance-1.0.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\nutz-integration-shiro-1.r.60.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\nutz-integration-shiro-1.r.60.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\log4j-1.2.17.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\log4j-1.2.17.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\guice-multibindings-3.0.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\guice-multibindings-3.0.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\slf4j-log4j12-1.7.12.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\slf4j-log4j12-1.7.12.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\c3p0-0.9.1.1.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\c3p0-0.9.1.1.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\guice-3.0.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\guice-3.0.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\guava-r09.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\guava-r09.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\nutz-integration-quartz-1.r.60.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\nutz-integration-quartz-1.r.60.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\javax.inject-1.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\javax.inject-1.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\activation-1.1.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\activation-1.1.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\commons-email-1.3.3.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\commons-email-1.3.3.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\shiro-all-1.2.3.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\shiro-all-1.2.3.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\junit-3.8.1.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\junit-3.8.1.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\quartz-jobs-2.2.1.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\quartz-jobs-2.2.1.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\simplecaptcha-1.2.2.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\simplecaptcha-1.2.2.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\shiro-core-1.2.3.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\shiro-core-1.2.3.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\slf4j-api-1.7.12.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\slf4j-api-1.7.12.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\commons-logging-1.2.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\commons-logging-1.2.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\javax.mail-1.5.2.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\javax.mail-1.5.2.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\shiro-guice-1.2.3.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\shiro-guice-1.2.3.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\commons-beanutils-1.9.2.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\commons-beanutils-1.9.2.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\quartz-2.2.1.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\quartz-2.2.1.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\commons-collections-3.2.1.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\commons-collections-3.2.1.jar], D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\mail-1.4.5.jar=Jar[path=D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\lib\mail-1.4.5.jar]}
[DEBUG] 19:03:21.122 org.nutz.castor.Castors.reload(Castors.java:115) - Using 95 castor for Castors
[DEBUG] 19:03:21.142 org.nutz.mvc.config.AbstractNutConfig.createLoading(AbstractNutConfig.java:59) - Loading by class org.nutz.mvc.impl.NutLoading
[INFO ] 19:03:21.144 org.nutz.mvc.impl.NutLoading.load(NutLoading.java:55) - Nutz Version : 1.r.60 
[INFO ] 19:03:21.144 org.nutz.mvc.impl.NutLoading.load(NutLoading.java:56) - Nutz.Mvc[nutz] is initializing ...
[DEBUG] 19:03:21.144 org.nutz.mvc.impl.NutLoading.load(NutLoading.java:60) - Web Container Information:
[DEBUG] 19:03:21.145 org.nutz.mvc.impl.NutLoading.load(NutLoading.java:61) -  - Default Charset : UTF-8
[DEBUG] 19:03:21.145 org.nutz.mvc.impl.NutLoading.load(NutLoading.java:62) -  - Current . path  : D:\dev\eclipse\.
[DEBUG] 19:03:21.145 org.nutz.mvc.impl.NutLoading.load(NutLoading.java:63) -  - Java Version    : 1.7.0_75
[DEBUG] 19:03:21.145 org.nutz.mvc.impl.NutLoading.load(NutLoading.java:64) -  - File separator  : \
[DEBUG] 19:03:21.145 org.nutz.mvc.impl.NutLoading.load(NutLoading.java:65) -  - Timezone        : Asia/Shanghai
[DEBUG] 19:03:21.145 org.nutz.mvc.impl.NutLoading.load(NutLoading.java:66) -  - OS              : Windows 7 amd64
[DEBUG] 19:03:21.146 org.nutz.mvc.impl.NutLoading.load(NutLoading.java:67) -  - ServerInfo      : Apache Tomcat/7.0.50
[DEBUG] 19:03:21.146 org.nutz.mvc.impl.NutLoading.load(NutLoading.java:68) -  - Servlet API     : 3.0
[DEBUG] 19:03:21.146 org.nutz.mvc.impl.NutLoading.load(NutLoading.java:73) -  - ContextPath     : /nutz
[DEBUG] 19:03:21.146 org.nutz.mvc.impl.NutLoading.load(NutLoading.java:74) -  - context.tempdir : D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\work\Catalina\localhost\nutz
[DEBUG] 19:03:21.146 org.nutz.mvc.impl.NutLoading.load(NutLoading.java:75) -  - MainModule      : me.cdroid.nutz.MainModule
[DEBUG] 19:03:21.147 org.nutz.mvc.impl.NutLoading.createContext(NutLoading.java:238) - >> app.root = D:/dev/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp3/wtpwebapps/nutz
[DEBUG] 19:03:21.149 org.nutz.mvc.impl.NutLoading.createIoc(NutLoading.java:379) - @IocBy(type=org.nutz.mvc.ioc.provider.ComboIocProvider, args=["*js", "ioc/", "*anno", "me.cdroid.nutz", "*async", "*tx", "*org.nutz.integration.quartz.QuartzIocLoader"],init=[])
[DEBUG] 19:03:21.179 org.nutz.resource.Scans.scan(Scans.java:274) - Found 3 resource by src( ioc/ ) , regex( ^(.+[.])(js|json)$ )
[DEBUG] 19:03:21.180 org.nutz.ioc.loader.json.JsonLoader.<init>(JsonLoader.java:48) - loading ioc js config from [dao.js]
[DEBUG] 19:03:21.184 org.nutz.ioc.loader.json.JsonLoader.<init>(JsonLoader.java:48) - loading ioc js config from [ehcache.js]
[DEBUG] 19:03:21.185 org.nutz.ioc.loader.json.JsonLoader.<init>(JsonLoader.java:48) - loading ioc js config from [mail.js]
[DEBUG] 19:03:21.186 org.nutz.ioc.loader.json.JsonLoader.<init>(JsonLoader.java:56) - Loaded 8 bean define from path=[ioc/] --> [htmlEmail, dataSource, dao, cacheProvider, cacheManager, cacheExecutor, conf, emailAuthenticator]
[DEBUG] 19:03:21.203 org.nutz.resource.Scans.scan(Scans.java:274) - Found 30 resource by src( me/cdroid/nutz/ ) , regex( ^.+[.]class$ )
[DEBUG] 19:03:21.262 org.nutz.ioc.loader.annotation.AnnotationIocLoader.addClass(AnnotationIocLoader.java:74) - Found @IocBean : class me.cdroid.nutz.module.AuthorityModule
[DEBUG] 19:03:21.277 org.nutz.ioc.loader.annotation.AnnotationIocLoader.addClass(AnnotationIocLoader.java:74) - Found @IocBean : class me.cdroid.nutz.module.CaptchaModule
[DEBUG] 19:03:21.279 org.nutz.ioc.loader.annotation.AnnotationIocLoader.addClass(AnnotationIocLoader.java:74) - Found @IocBean : class me.cdroid.nutz.module.UserModule
[DEBUG] 19:03:21.283 org.nutz.ioc.loader.annotation.AnnotationIocLoader.addClass(AnnotationIocLoader.java:74) - Found @IocBean : class me.cdroid.nutz.module.UserProfileModule
[DEBUG] 19:03:21.291 org.nutz.ioc.loader.annotation.AnnotationIocLoader.addClass(AnnotationIocLoader.java:74) - Found @IocBean : class me.cdroid.nutz.quartz.job.CleanNonActiveUserJob
[DEBUG] 19:03:21.294 org.nutz.ioc.loader.annotation.AnnotationIocLoader.addClass(AnnotationIocLoader.java:74) - Found @IocBean : class me.cdroid.nutz.service.impl.AuthorityServiceImpl
[DEBUG] 19:03:21.295 org.nutz.ioc.loader.annotation.AnnotationIocLoader.addClass(AnnotationIocLoader.java:74) - Found @IocBean : class me.cdroid.nutz.service.impl.EmailServiceImpl
[DEBUG] 19:03:21.296 org.nutz.ioc.loader.annotation.AnnotationIocLoader.addClass(AnnotationIocLoader.java:74) - Found @IocBean : class me.cdroid.nutz.service.impl.UserServiceImpl
[INFO ] 19:03:21.300 org.nutz.ioc.loader.annotation.AnnotationIocLoader.<init>(AnnotationIocLoader.java:50) - Found 8 classes in 1 base-packages!
beans = ["captchaModule", "cleanNonActiveUserJob", "userProfileModule", "userService", "authorityModule", "authorityService", "emailService", "userModule"]
[DEBUG] 19:03:21.301 org.nutz.ioc.aop.SimpleAopMaker.<init>(SimpleAopMaker.java:79) - Load AopConfigure for anno=org.nutz.aop.interceptor.async.Async by type=org.nutz.aop.interceptor.async.AsyncAopIocLoader
[DEBUG] 19:03:21.303 org.nutz.ioc.loader.json.JsonLoader.<init>(JsonLoader.java:40) - Loaded 5 bean define from reader --
[txREPEATABLE_READ, txREAD_COMMITTED, txNONE, txSERIALIZABLE, txREAD_UNCOMMITTED]
[DEBUG] 19:03:21.304 org.nutz.ioc.loader.json.JsonLoader.<init>(JsonLoader.java:56) - Loaded 0 bean define from path=[] --> []
[INFO ] 19:03:21.307 org.nutz.ioc.impl.NutIoc.<init>(NutIoc.java:98) - NutIoc init begin ...
[INFO ] 19:03:21.309 org.nutz.ioc.impl.NutIoc.<init>(NutIoc.java:115) - ... NutIoc init complete
[INFO ] 19:03:21.311 org.nutz.mvc.impl.NutLoading.evalUrlMapping(NutLoading.java:159) - Build URL mapping by org.nutz.mvc.impl.UrlMappingImpl ...
[DEBUG] 19:03:21.314 org.nutz.mvc.impl.NutLoading.createViewMakers(NutLoading.java:369) - @Views(DefaultViewMaker.class)
[DEBUG] 19:03:21.325 org.nutz.resource.Scans.scan(Scans.java:274) - Found 1 resource by src( mvc/nutz-mvc-chain.js ) , regex( ^(.+[.])(js|json)$ )
[DEBUG] 19:03:21.331 org.nutz.mvc.impl.chainconfig.JsonActionChainMakerConfiguretion.<init>(JsonActionChainMakerConfiguretion.java:37) - ActionChain Config:
{
   "default": {
      "ps": ["me.cdroid.nutz.mvc.LogTimeProcessor", "org.nutz.mvc.impl.processor.UpdateRequestAttributesProcessor", "org.nutz.mvc.impl.processor.EncodingProcessor", "org.nutz.mvc.impl.processor.ModuleProcessor", "org.nutz.integration.shiro.NutShiroProcessor", "org.nutz.mvc.impl.processor.ActionFiltersProcessor", "org.nutz.mvc.impl.processor.AdaptorProcessor", "org.nutz.mvc.impl.processor.MethodInvokeProcessor", "org.nutz.mvc.impl.processor.ViewProcessor"],
      "error": "org.nutz.mvc.impl.processor.FailProcessor"
   }
}
[DEBUG] 19:03:21.331 org.nutz.mvc.impl.NutLoading.createChainMaker(NutLoading.java:266) - @ChainBy(org.nutz.mvc.impl.NutActionChainMaker)
[DEBUG] 19:03:21.335 org.nutz.mvc.impl.Loadings.scanModules(Loadings.java:154) - module class location 'file:/D:/dev/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp3/wtpwebapps/nutz/WEB-INF/classes/me/cdroid/nutz/MainModule.class'
[DEBUG] 19:03:21.336 org.nutz.mvc.impl.Loadings.scanModuleInPackage(Loadings.java:184) -  > scan 'me.cdroid.nutz'
[DEBUG] 19:03:21.343 org.nutz.resource.Scans.scan(Scans.java:274) - Found 30 resource by src( me/cdroid/nutz/ ) , regex( ^.+[.]class$ )
[DEBUG] 19:03:21.346 org.nutz.mvc.impl.Loadings.checkModule(Loadings.java:198) -    >> add 'me.cdroid.nutz.MainModule'
[DEBUG] 19:03:21.347 org.nutz.mvc.impl.Loadings.checkModule(Loadings.java:198) -    >> add 'me.cdroid.nutz.module.AuthorityModule'
[DEBUG] 19:03:21.347 org.nutz.mvc.impl.Loadings.checkModule(Loadings.java:198) -    >> add 'me.cdroid.nutz.module.CaptchaModule'
[DEBUG] 19:03:21.347 org.nutz.mvc.impl.Loadings.checkModule(Loadings.java:198) -    >> add 'me.cdroid.nutz.module.UserModule'
[DEBUG] 19:03:21.347 org.nutz.mvc.impl.Loadings.checkModule(Loadings.java:198) -    >> add 'me.cdroid.nutz.module.UserProfileModule'
[DEBUG] 19:03:21.380 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/user/error'               >> (UserModule.java:152).error           : void       | @Ok(json:{locked:'password|salt',ignoreNull:true}) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.395 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/user/add'                 >> (UserModule.java:105).add             : Object     | @Ok(json:{locked:'password|salt',ignoreNull:true}) @Fail(http:500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.396 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/user/'                    >> (UserModule.java:50).index            : void       | @Ok(jsp:jsp.user.list) @Fail(http:500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.398 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/user/delete'              >> (UserModule.java:127).delete          : Object     | @Ok(json:{locked:'password|salt',ignoreNull:true}) @Fail(http:500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.401 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/user/query'               >> (UserModule.java:139).query           : Object     | @Ok(json:{locked:'password|salt',ignoreNull:true}) @Fail(http:500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.402 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/user/update'              >> (UserModule.java:117).update          : Object     | @Ok(json:{locked:'password|salt',ignoreNull:true}) @Fail(http:500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.403 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/user/login'               >> (UserModule.java:55).loginPage        : void       | @Ok(jsp:jsp.user.login) @Fail(http:500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.404 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/user/login'               >> (UserModule.java:64).login            : Object     | @Ok(json ) @Fail(http:500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[INFO ] 19:03:21.405 org.nutz.mvc.impl.processor.ModuleProcessor.init(ModuleProcessor.java:61) - Create Module obj without Ioc --> class me.cdroid.nutz.MainModule
[DEBUG] 19:03:21.405 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/home'                     >> (MainModule.java:36).home             : void       | @Ok(jsp:jsp.home) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.407 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/user/profile/get'         >> (UserProfileModule.java:63).get       : UserProfile | @Ok(json:full) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.407 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/user/profile/'            >> (UserProfileModule.java:57).index     : UserProfile | @Ok(jsp:jsp.user.profile) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.411 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/user/profile/update'      >> (UserProfileModule.java:80).update    : void       | @Ok(void ) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.414 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/user/profile/avatar'      >> (UserProfileModule.java:144).readAvatar : Object     | @Ok(raw:jpg) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.414 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/user/profile/active/mail' >> (UserProfileModule.java:158).activeMail : Object     | @Ok(json:full) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[INFO ] 19:03:21.419 org.nutz.filepool.NutFilePool.<init>(NutFilePool.java:23) - Init file-pool by: D:/dev/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp3/wtpwebapps/nutz/WEB-INF/tmp/user_avatar [20000]
[DEBUG] 19:03:21.421 org.nutz.filepool.NutFilePool.<init>(NutFilePool.java:37) - file-pool.home: 'D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\WEB-INF\tmp\user_avatar'
[INFO ] 19:03:21.422 org.nutz.filepool.NutFilePool.<init>(NutFilePool.java:66) - file-pool.cursor: 0
[DEBUG] 19:03:21.426 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/user/profile/avatar'      >> (UserProfileModule.java:112).uploadAvatar : void       | @Ok(>>:/user/profile) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.429 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/user/profile/active/mail' >> (UserProfileModule.java:186).activeMailCallback : String     | @Ok(raw  ) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.431 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/admin/authority/permissions' >> (AuthorityModule.java:63).permissions : Object     | @Ok(json ) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.432 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/admin/authority/role/add' >> (AuthorityModule.java:167).addRole    : void       | @Ok(void ) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.433 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/admin/authority/roles'    >> (AuthorityModule.java:53).roles       : Object     | @Ok(json ) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.434 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/admin/authority/users'    >> (AuthorityModule.java:43).users       : Object     | @Ok(json:{locked:'password|salt',ignoreNull:true}) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.434 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/admin/authority/permission/add' >> (AuthorityModule.java:256).addPermission : void       | @Ok(void ) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.436 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/admin/authority/user/update' >> (AuthorityModule.java:81).updateUser  : void       | @Ok(void ) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.437 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/admin/authority/role/delete' >> (AuthorityModule.java:180).delRole    : void       | @Ok(void ) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.439 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/admin/authority/permission/update' >> (AuthorityModule.java:284).updateRole : void       | @Ok(void ) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.440 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/admin/authority/role/update' >> (AuthorityModule.java:200).updateRole : void       | @Ok(void ) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.441 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/admin/authority/permission/delete' >> (AuthorityModule.java:270).delPermission : void       | @Ok(void ) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.442 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/admin/authority/user/fetch/permission' >> (AuthorityModule.java:125).fetchUserPermissions : Object     | @Ok(json ) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.443 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/admin/authority/user/fetch/role' >> (AuthorityModule.java:144).fetchUserRoles : Object     | @Ok(json ) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.444 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/admin/authority/role/fetch' >> (AuthorityModule.java:233).fetchRolePermissions : Object     | @Ok(json ) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[DEBUG] 19:03:21.446 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) -    '/captcha/next'             >> (CaptchaModule.java:24).next          : BufferedImage | @Ok(raw:png) @Fail(jsp:jsp.500) | by 0 Filters | (I:UTF-8/O:UTF-8)
[INFO ] 19:03:21.446 org.nutz.mvc.impl.NutLoading.evalUrlMapping(NutLoading.java:220) - Found 30 module methods
[DEBUG] 19:03:21.446 org.nutz.mvc.impl.NutLoading.evalLocalization(NutLoading.java:306) - Localization: org.nutz.mvc.impl.NutMessageLoader('msg/')  dft<zh-CN>
[DEBUG] 19:03:21.450 org.nutz.resource.Scans.scan(Scans.java:274) - Found 5 resource by src( msg/ ) , regex( ^.+[.]properties$ )
[DEBUG] 19:03:21.451 org.nutz.mvc.impl.NutMessageLoader.load(NutMessageLoader.java:27) - Load Messages in 5 resource : [[NutResource[zh-CN/admin_menu.properties], NutResource[zh-CN/authority.properties], NutResource[zh-CN/index.properties], NutResource[zh-CN/language_tag.properties], NutResource[zh-CN/user.properties]]]
[DEBUG] 19:03:21.454 org.nutz.mvc.impl.NutMessageLoader.load(NutMessageLoader.java:95) - Message Loaded, size = 2
[INFO ] 19:03:21.454 org.nutz.mvc.impl.NutLoading.createSessionProvider(NutLoading.java:413) - SessionBy --> org.nutz.integration.shiro.ShiroSessionProvider@6b6385b9
[INFO ] 19:03:21.454 org.nutz.mvc.impl.NutLoading.evalSetup(NutLoading.java:274) - Setup application...
[DEBUG] 19:03:21.454 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get 'dao'<interface org.nutz.dao.Dao>
[DEBUG] 19:03:21.455 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get '$aop_async'<interface org.nutz.ioc.aop.config.AopConfigration>
[DEBUG] 19:03:21.456 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:177) - 	 >> Load definition name=$aop_async
[DEBUG] 19:03:21.458 org.nutz.ioc.loader.combo.ComboIocLoader.load(ComboIocLoader.java:169) - Found IocObject($aop_async) in AsyncAopIocLoader@633670943
[DEBUG] 19:03:21.458 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:209) - 	 >> Make...'$aop_async'<interface org.nutz.ioc.aop.config.AopConfigration>
[DEBUG] 19:03:21.459 org.nutz.ioc.impl.ScopeContext.save(ScopeContext.java:64) - Save object '$aop_async' to [app] 
[DEBUG] 19:03:21.463 org.nutz.ioc.aop.SimpleAopMaker.<init>(SimpleAopMaker.java:79) - Load AopConfigure for anno=org.nutz.ioc.aop.Aop by type=org.nutz.ioc.aop.config.impl.AnnotationAopConfigration
[DEBUG] 19:03:21.464 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:177) - 	 >> Load definition name=dao
[DEBUG] 19:03:21.464 org.nutz.ioc.loader.map.MapLoader.load(MapLoader.java:67) - Loading define for name=dao
[DEBUG] 19:03:21.467 org.nutz.ioc.loader.combo.ComboIocLoader.load(ComboIocLoader.java:169) - Found IocObject(dao) in JsonLoader(paths=[ioc/])
[DEBUG] 19:03:21.467 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:209) - 	 >> Make...'dao'<interface org.nutz.dao.Dao>
[DEBUG] 19:03:21.478 org.nutz.ioc.aop.impl.DefaultMirrorFactory.getMirror(DefaultMirrorFactory.java:70) - Load class org.nutz.dao.impl.NutDao without AOP
[DEBUG] 19:03:21.478 org.nutz.ioc.impl.ScopeContext.save(ScopeContext.java:64) - Save object 'dao' to [app] 
[DEBUG] 19:03:21.479 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get 'dataSource'<>
[DEBUG] 19:03:21.479 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:177) - 	 >> Load definition name=dataSource
[DEBUG] 19:03:21.479 org.nutz.ioc.loader.map.MapLoader.load(MapLoader.java:67) - Loading define for name=dataSource
[DEBUG] 19:03:21.487 org.nutz.ioc.loader.combo.ComboIocLoader.load(ComboIocLoader.java:169) - Found IocObject(dataSource) in JsonLoader(paths=[ioc/])
[DEBUG] 19:03:21.487 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:209) - 	 >> Make...'dataSource'<>
[DEBUG] 19:03:21.509 org.nutz.ioc.aop.impl.DefaultMirrorFactory.getMirror(DefaultMirrorFactory.java:70) - Load class com.alibaba.druid.pool.DruidDataSource without AOP
[DEBUG] 19:03:21.510 org.nutz.ioc.impl.ScopeContext.save(ScopeContext.java:64) - Save object 'dataSource' to [app] 
[DEBUG] 19:03:21.531 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get 'conf'<>
[DEBUG] 19:03:21.531 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:177) - 	 >> Load definition name=conf
[DEBUG] 19:03:21.531 org.nutz.ioc.loader.map.MapLoader.load(MapLoader.java:67) - Loading define for name=conf
[DEBUG] 19:03:21.532 org.nutz.ioc.loader.combo.ComboIocLoader.load(ComboIocLoader.java:169) - Found IocObject(conf) in JsonLoader(paths=[ioc/])
[DEBUG] 19:03:21.532 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:209) - 	 >> Make...'conf'<>
[DEBUG] 19:03:21.532 org.nutz.ioc.aop.impl.DefaultMirrorFactory.getMirror(DefaultMirrorFactory.java:70) - Load class org.nutz.ioc.impl.PropertiesProxy without AOP
[DEBUG] 19:03:21.533 org.nutz.ioc.impl.ScopeContext.save(ScopeContext.java:64) - Save object 'conf' to [app] 
[DEBUG] 19:03:21.537 org.nutz.resource.Scans.scan(Scans.java:274) - Found 3 resource by src( custom/ ) , regex( ^.+[.]properties$ )
[DEBUG] 19:03:21.540 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get 'conf'<>
[DEBUG] 19:03:21.541 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get 'conf'<>
[DEBUG] 19:03:21.541 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get 'conf'<>
[DEBUG] 19:03:21.542 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get 'conf'<>
[INFO ] 19:03:21.603 com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:715) - {dataSource-1} inited
[DEBUG] 19:03:21.604 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get 'dataSource'<>
[INFO ] 19:03:21.626 org.nutz.filepool.NutFilePool.<init>(NutFilePool.java:23) - Init file-pool by: C:\Users\CAI/.nutz/tmp/dao/ [200000]
[DEBUG] 19:03:21.627 org.nutz.filepool.NutFilePool.<init>(NutFilePool.java:37) - file-pool.home: 'C:\Users\CAI\.nutz\tmp\dao'
[INFO ] 19:03:21.627 org.nutz.filepool.NutFilePool.<init>(NutFilePool.java:66) - file-pool.cursor: 0
[DEBUG] 19:03:21.635 org.nutz.dao.jdbc.Jdbcs.<clinit>(Jdbcs.java:90) - Jdbcs init complete
[INFO ] 19:03:21.636 org.nutz.dao.jdbc.Jdbcs.getExpert(Jdbcs.java:103) - Get Connection from DataSource for JdbcExpert, if you lock at here, check your database server and configure
[DEBUG] 19:03:21.833 org.nutz.dao.impl.DaoSupport.setDataSource(DaoSupport.java:188) - select expert : org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert
[DEBUG] 19:03:21.838 org.nutz.dao.impl.DaoSupport$1.invoke(DaoSupport.java:199) - JDBC Driver --> mysql-connector-java-5.1.34 ( Revision: jess.balint@oracle.com-20141014163213-wqbwpf1ok2kvo1om )
[DEBUG] 19:03:21.839 org.nutz.dao.impl.DaoSupport$1.invoke(DaoSupport.java:200) - JDBC Name   --> MySQL Connector Java
[DEBUG] 19:03:21.839 org.nutz.dao.impl.DaoSupport$1.invoke(DaoSupport.java:202) - JDBC URL    --> jdbc:mysql://127.0.0.1:3306/nutz
[DEBUG] 19:03:21.983 org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert.checkDataSource(MysqlJdbcExpert.java:212) - Mysql : character_set_client=utf8
[DEBUG] 19:03:21.983 org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert.checkDataSource(MysqlJdbcExpert.java:212) - Mysql : character_set_connection=utf8
[DEBUG] 19:03:21.983 org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert.checkDataSource(MysqlJdbcExpert.java:212) - Mysql : character_set_database=utf8
[DEBUG] 19:03:21.983 org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert.checkDataSource(MysqlJdbcExpert.java:212) - Mysql : character_set_filesystem=binary
[DEBUG] 19:03:21.984 org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert.checkDataSource(MysqlJdbcExpert.java:212) - Mysql : character_set_results=
[DEBUG] 19:03:21.984 org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert.checkDataSource(MysqlJdbcExpert.java:212) - Mysql : character_set_server=utf8
[DEBUG] 19:03:21.984 org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert.checkDataSource(MysqlJdbcExpert.java:212) - Mysql : character_set_system=utf8
[DEBUG] 19:03:21.984 org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert.checkDataSource(MysqlJdbcExpert.java:212) - Mysql : character_sets_dir=D:\dev\mysql5.6\share\charsets\
[DEBUG] 19:03:21.986 org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert.checkDataSource(MysqlJdbcExpert.java:219) - Mysql : binlog_format=STATEMENT
[DEBUG] 19:03:21.987 org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert.checkDataSource(MysqlJdbcExpert.java:226) - Mysql : database=nutz
[DEBUG] 19:03:21.987 org.nutz.dao.impl.jdbc.mysql.MysqlJdbcExpert.checkDataSource(MysqlJdbcExpert.java:232) - Mysql : user=root@localhost
[DEBUG] 19:03:22.020 org.nutz.dao.impl.DaoSupport.setDataSource(DaoSupport.java:221) - Database info --> MYSQL:[MySQL - 5.6.24]
[DEBUG] 19:03:22.024 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get 'cacheExecutor'<>
[DEBUG] 19:03:22.025 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:177) - 	 >> Load definition name=cacheExecutor
[DEBUG] 19:03:22.025 org.nutz.ioc.loader.map.MapLoader.load(MapLoader.java:67) - Loading define for name=cacheExecutor
[DEBUG] 19:03:22.026 org.nutz.ioc.loader.combo.ComboIocLoader.load(ComboIocLoader.java:169) - Found IocObject(cacheExecutor) in JsonLoader(paths=[ioc/])
[DEBUG] 19:03:22.026 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:209) - 	 >> Make...'cacheExecutor'<>
[DEBUG] 19:03:22.027 org.nutz.ioc.aop.impl.DefaultMirrorFactory.getMirror(DefaultMirrorFactory.java:70) - Load class org.nutz.plugins.cache.dao.CachedNutDaoExecutor without AOP
[DEBUG] 19:03:22.028 org.nutz.ioc.impl.ScopeContext.save(ScopeContext.java:64) - Save object 'cacheExecutor' to [app] 
[DEBUG] 19:03:22.028 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get 'cacheProvider'<>
[DEBUG] 19:03:22.029 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:177) - 	 >> Load definition name=cacheProvider
[DEBUG] 19:03:22.029 org.nutz.ioc.loader.map.MapLoader.load(MapLoader.java:67) - Loading define for name=cacheProvider
[DEBUG] 19:03:22.030 org.nutz.ioc.loader.combo.ComboIocLoader.load(ComboIocLoader.java:169) - Found IocObject(cacheProvider) in JsonLoader(paths=[ioc/])
[DEBUG] 19:03:22.030 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:209) - 	 >> Make...'cacheProvider'<>
[DEBUG] 19:03:22.031 org.nutz.ioc.aop.impl.DefaultMirrorFactory.getMirror(DefaultMirrorFactory.java:70) - Load class org.nutz.plugins.cache.dao.impl.provider.EhcacheDaoCacheProvider without AOP
[DEBUG] 19:03:22.031 org.nutz.ioc.impl.ScopeContext.save(ScopeContext.java:64) - Save object 'cacheProvider' to [app] 
[DEBUG] 19:03:22.032 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get 'cacheManager'<>
[DEBUG] 19:03:22.032 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:177) - 	 >> Load definition name=cacheManager
[DEBUG] 19:03:22.032 org.nutz.ioc.loader.map.MapLoader.load(MapLoader.java:67) - Loading define for name=cacheManager
[DEBUG] 19:03:22.032 org.nutz.ioc.loader.combo.ComboIocLoader.load(ComboIocLoader.java:169) - Found IocObject(cacheManager) in JsonLoader(paths=[ioc/])
[DEBUG] 19:03:22.033 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:209) - 	 >> Make...'cacheManager'<>
[DEBUG] 19:03:22.035 org.nutz.ioc.aop.impl.DefaultMirrorFactory.getMirror(DefaultMirrorFactory.java:70) - Load class net.sf.ehcache.CacheManager without AOP
[DEBUG] 19:03:22.036 org.nutz.ioc.impl.ScopeContext.save(ScopeContext.java:64) - Save object 'cacheManager' to [app] 
[DEBUG] 19:03:22.176 org.nutz.resource.Scans.scan(Scans.java:274) - Found 30 resource by src( me/cdroid/nutz/ ) , regex( ^.+[.]class$ )
[DEBUG] 19:03:22.182 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - SELECT COUNT(*) FROM t_user 
[DEBUG] 19:03:22.184 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get 'authorityService'<interface me.cdroid.nutz.service.AuthorityService>
[DEBUG] 19:03:22.184 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:177) - 	 >> Load definition name=authorityService
[DEBUG] 19:03:22.184 org.nutz.ioc.loader.combo.ComboIocLoader.load(ComboIocLoader.java:169) - Found IocObject(authorityService) in AnnotationIocLoader(packages=[me.cdroid.nutz])
[DEBUG] 19:03:22.184 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:209) - 	 >> Make...'authorityService'<interface me.cdroid.nutz.service.AuthorityService>
[DEBUG] 19:03:22.184 org.nutz.ioc.aop.impl.DefaultMirrorFactory.getMirror(DefaultMirrorFactory.java:70) - Load class me.cdroid.nutz.service.impl.AuthorityServiceImpl without AOP
[DEBUG] 19:03:22.185 org.nutz.ioc.impl.ScopeContext.save(ScopeContext.java:64) - Save object 'authorityService' to [app] 
[DEBUG] 19:03:22.186 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get 'dao'<interface org.nutz.dao.Dao>
[DEBUG] 19:03:22.194 org.nutz.resource.Scans.scan(Scans.java:274) - Found 30 resource by src( me/cdroid/nutz/ ) , regex( ^.+[.]class$ )
[DEBUG] 19:03:22.200 me.cdroid.nutz.service.impl.AuthorityServiceImpl.initFormPackage(AuthorityServiceImpl.java:60) - found 14 permission
[DEBUG] 19:03:22.200 me.cdroid.nutz.service.impl.AuthorityServiceImpl.initFormPackage(AuthorityServiceImpl.java:61) - found 0 role
[DEBUG] 19:03:22.203 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - SELECT * FROM t_permission 
[DEBUG] 19:03:22.208 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - SELECT * FROM t_role 
[DEBUG] 19:03:22.213 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - SELECT * FROM t_user  WHERE name=?
    |     1 |
    |-------|
    | admin |
  For example:> "SELECT * FROM t_user  WHERE name='admin'"
[DEBUG] 19:03:22.216 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - SELECT * FROM t_role  WHERE name=?
    |     1 |
    |-------|
    | admin |
  For example:> "SELECT * FROM t_role  WHERE name='admin'"
[DEBUG] 19:03:22.228 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - SELECT COUNT(*) FROM t_user_role  WHERE u_id=? AND role_id=?
    | 1 | 2 |
    |---|---|
    | 1 | 2 |
  For example:> "SELECT COUNT(*) FROM t_user_role  WHERE u_id=1 AND role_id=2"
[DEBUG] 19:03:22.231 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - SELECT * FROM t_role_permission  WHERE role_id=?
    | 1 |
    |---|
    | 2 |
  For example:> "SELECT * FROM t_role_permission  WHERE role_id=2"
[DEBUG] 19:03:22.234 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - SELECT * FROM t_permission  WHERE name LIKE ? OR name LIKE ?
    |           1 |      2 |
    |-------------|--------|
    | authority:% | user:% |
  For example:> "SELECT * FROM t_permission  WHERE name LIKE 'authority:%' OR name LIKE 'user:%'"
[DEBUG] 19:03:22.238 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get 'cacheManager'<class net.sf.ehcache.CacheManager>
[DEBUG] 19:03:22.238 me.cdroid.nutz.mainSetup.init(mainSetup.java:44) - Ehcache CacheManager = nutz
[INFO ] 19:03:22.238 org.nutz.mvc.impl.NutLoading.load(NutLoading.java:141) - Nutz.Mvc[nutz] is up in 1091ms

日志里面没有任何t_user_profile字样

@wendal ,抱歉,下面是多次刷新userProfile页面的日志

[DEBUG] 19:27:48.588 org.nutz.mvc.impl.UrlMappingImpl.get(UrlMappingImpl.java:101) - Found mapping for [GET] path=/user/profile : UserProfileModule.index(UserProfileModule.java:57)
[DEBUG] 19:27:48.589 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get 'userProfileModule'<class me.cdroid.nutz.module.UserProfileModule>
[DEBUG] 19:27:48.591 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - SELECT uid,nickname,email,email_checked,gender,dt,loc,ct,ut FROM t_user_profile  WHERE uid=?
    | 1 |
    |---|
    | 1 |
  For example:> "SELECT uid,nickname,email,email_checked,gender,dt,loc,ct,ut FROM t_user_profile  WHERE uid=1"
[DEBUG] 19:27:48.600 me.cdroid.nutz.mvc.LogTimeProcessor.process(LogTimeProcessor.java:28) - [ GET]URI=/nutz/user/profile 11ms
[DEBUG] 19:27:48.626 org.nutz.mvc.impl.UrlMappingImpl.get(UrlMappingImpl.java:101) - Found mapping for [GET] path=/user/profile/avatar : UserProfileModule.readAvatar(UserProfileModule.java:144)
[DEBUG] 19:27:48.627 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) - Get 'userProfileModule'<class me.cdroid.nutz.module.UserProfileModule>
[DEBUG] 19:27:48.628 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) - SELECT avatar FROM t_user_profile  WHERE uid=?
    | 1 |
    |---|
    | 1 |
  For example:> "SELECT avatar FROM t_user_profile  WHERE uid=1"
[DEBUG] 19:27:48.630 org.nutz.mvc.view.RawView.render(RawView.java:116) - File downloading ... D:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\nutz\rs\user_avatar\none.jpg
[DEBUG] 19:27:48.631 me.cdroid.nutz.mvc.LogTimeProcessor.process(LogTimeProcessor.java:28) - [ GET]URI=/nutz/user/profile/avatar 5ms

CachedNutDaoExecutor的日志没出来, CachedNutDaoExecutor.DEBUG没设置为true

@wendal 有啊,我已经设置true了。

CachedNutDaoExecutor.DEBUG = true;

userFile 里面的获取方法是:

	@At
	@RequiresUser
	public UserProfile get() {
		int userId = Toolkit.uid();
        UserProfile profile = Daos.ext(dao, FieldFilter.locked(UserProfile.class, "avatar")).fetch(UserProfile.class, userId);
        if (profile == null) {
            profile = new UserProfile();
            profile.setUserId(userId);
            profile.setCreateTime(new Date());
            profile.setUpdateTime(new Date());
            dao.insert(profile);
        }
        return profile;
    }

debug一下CachedNutDaoExecutor的exec方法,看看发生了什么, 理应有日志的

@wendal 大大,好像是我问得不清楚, 我的cache实例是nutz,运行的时候是有注入的,是正确的。
我这边不是进行数据库访问的时候会自动加入cache吗?我是指每次执行同一段sql语句他都会查询数据库,不会走cache

@wendal debug 进不去CachedNutDaoExecutor的exec方法

是我写错了, 把org.nutz.plugins.cache.dao.CachedNutDaoExecutor改成org.nutz.plugins.cache.dao.DaoCacheInterceptor

OK~ 感谢兽总

dao : {
            type : "org.nutz.dao.impl.NutDao",
            args : [{refer:"dataSource"}],
            fields : {
                //executor : {refer:"cacheExecutor"}
        		interceptors : [{refer:"cacheInterceptor"}, "log"] // 这是1.r.58及以上的写法
            }
        },
        cacheInterceptor : {
            type : "org.nutz.plugins.cache.dao.DaoCacheInterceptor",
            fields : {
                cacheProvider : {refer:"cacheProvider"},
                // 需要缓存的表名
                cachedTableNames : ["t_user_profile",
                                    "t_user", "t_role", "t_permission", "t_role_permission"
                                   ]
            }
        },
        // 基于Ehcache的DaoCacheProvider
        cacheProvider : {
            type : "org.nutz.plugins.cache.dao.impl.provider.EhcacheDaoCacheProvider",
            fields : {
                cacheManager : {refer:"cacheManager"} // 引用ehcache.js中定义的CacheManager
            },
            events : {
                create : "init"
            }
        }
添加回复
请先登陆
回到顶部