NutzCN Logo
问答 nutzwk用的比较早,原来是自己改造的redis集群,现在想改为单机,启动报错
发布于 32天前 作者 qq_d6c9c504 139 次浏览 复制 上一个帖子 下一个帖子
标签: nutzwk
  "sys.java.home": "/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre",
   "env.PWD": "/Users/guolifei/Documents/codespace/play",
   "sys.gopherProxySet": "false",
   "sys.java.runtime.version": "1.8.0_161-b12",
   "env.LC_CTYPE": "zh_CN.UTF-8",
   "sys.user.home": "/Users/guolifei",
   "env.HOME": "/Users/guolifei",
   "sys.idea.version": "2017.3.5",
   "sys.java.vm.info": "mixed mode",
   "sys.sun.management.compiler": "HotSpot 64-Bit Tiered Compilers",
   "sys.user.timezone": "Asia/Shanghai",
   "sys.os.arch": "x86_64",
   "sys.java.specification.version": "1.8",
   "sys.maven.home": "/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3",
   "sys.sun.java.launcher": "SUN_STANDARD",
   "sys.user.country": "CN",
   "sys.java.endorsed.dirs": "/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/endorsed",
   "sys.sun.cpu.isalist": "",
   "sys.classworlds.conf": "/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3/bin/m2.conf",
   "sys.user.name": "guolifei",
   "sys.sun.arch.data.model": "64",
   "sys.sun.cpu.endian": "little",
   "sys.sun.boot.class.path": "/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/classes",
   "sys.java.ext.dirs": "/Users/guolifei/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java",
   "sys.java.vm.name": "Java HotSpot(TM) 64-Bit Server VM",
   "env.VERSIONER_PYTHON_VERSION": "2.7",
   "sys.java.vm.vendor": "Oracle Corporation",
   "sys.java.specification.name": "Java Platform API Specification",
   "sys.line.separator": "\n",
   "sys.guice.disable.misplaced.annotation.check": "true",
   "sys.java.class.path": "/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3/boot/plexus-classworlds-2.5.2.jar:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar",
   "env.VERSIONER_PYTHON_PREFER_32_BIT": "no",
   "sys.java.vendor.url.bug": "http://bugreport.sun.com/bugreport/",
   "env.Apple_PubSub_Socket_Render": "/private/tmp/com.apple.launchd.USEmNgGFRv/Render",
   "sys.java.runtime.name": "Java(TM) SE Runtime Environment",
   "sys.file.separator": "/",
   "sys.sun.boot.library.path": "/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib",
   "sys.java.awt.printerjob": "sun.lwawt.macosx.CPrinterJob",
   "env.XPC_SERVICE_NAME": "com.jetbrains.intellij.4296",
   "sys.os.name": "Mac OS X",
   "env.PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",
   "sys.path.separator": ":",
   "sys.sun.jnu.encoding": "UTF-8",
   "sys.java.class.version": "52.0",
   "sys.java.vm.specification.version": "1.8",
   "sys.java.library.path": "/Users/guolifei/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.",
   "env.XPC_FLAGS": "0x0",
   "env.LOGNAME": "guolifei",
   "sys.awt.toolkit": "sun.lwawt.macosx.LWCToolkit",
   "env.__CF_USER_TEXT_ENCODING": "0x1F5:0x19:0x34",
   "sys.user.language": "zh",
   "sys.java.vm.specification.vendor": "Oracle Corporation",
   "sys.java.vm.version": "25.161-b12",
   "sys.user.dir": "/Users/guolifei/Documents/codespace/play",
   "sys.file.encoding": "UTF-8",
   "env.SHELL": "/bin/bash",
   "sys.file.encoding.pkg": "sun.io",
   "sys.java.version": "1.8.0_161",
   "sys.java.specification.vendor": "Oracle Corporation",
   "sys.java.awt.graphicsenv": "sun.awt.CGraphicsEnvironment",
   "sys.java.io.tmpdir": "/var/folders/ky/w_hssx9n6gn_0y8mzs6z15t40000gn/T/",
   "app.root": "/Users/guolifei/Documents/codespace/play/src/main/webapp",
   "env.SSH_AUTH_SOCK": "/private/tmp/com.apple.launchd.c9ekSXCLHb/Listeners",
   "sys.sun.java.command": "org.codehaus.classworlds.Launcher -Didea.version=2017.3.5 jetty:run -P development",
   "env.JAVA_MAIN_CLASS_86722": "org.codehaus.classworlds.Launcher",
   "sys.maven.multiModuleProjectDirectory": "/Users/guolifei/Documents/codespace/play",
   "env.TMPDIR": "/var/folders/ky/w_hssx9n6gn_0y8mzs6z15t40000gn/T/",
   "sys.java.vm.specification.name": "Java Virtual Machine Specification",
   "sys.java.vendor.url": "http://java.oracle.com/",
   "sys.os.version": "10.13.3",
   "sys.sun.io.unicode.encoding": "UnicodeBig",
   "env.USER": "guolifei",
   "sys.java.vendor": "Oracle Corporation",
   "sys.sun.os.patch.level": "unknown"
}
 |   |       +> org.nutz.mvc.Setup=cn.play.common.core.Setup@126f8f24
 |   |       +> org.apache.tomcat.InstanceManager=org.apache.tomcat.SimpleInstanceManager@35e98af
 |   |       +> org.apache.jasper.compiler.TldCache=org.apache.jasper.compiler.TldCache@781aff8b
 |   |       +> __nutz__mvc__ctx={
}
 |   += org.eclipse.jetty.server.handler.DefaultHandler@7fd4e815 - STARTED
 |   += org.eclipse.jetty.server.handler.RequestLogHandler@5f6b53ed - STARTED
 |       += org.eclipse.jetty.server.NCSARequestLog@7fbf26fc - STARTED
 +- {file:/Users/guolifei/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar=org.eclipse.jetty.util.resource.EmptyResource@6869a3b3, file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar=org.eclipse.jetty.util.resource.EmptyResource@6869a3b3}
 +- {file:/Users/guolifei/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar=org.eclipse.jetty.util.resource.EmptyResource@6869a3b3, file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar=org.eclipse.jetty.util.resource.EmptyResource@6869a3b3}
 +- {file:/Users/guolifei/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar=[], file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar=[jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/fn.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/c-1_1.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/sql-1_0-rt.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/fmt-1_0-rt.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/sql.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/c.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/x-1_0-rt.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/fmt.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/x.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/scriptfree.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/c-1_0-rt.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/permittedTaglibs.tld]}
 += org.eclipse.jetty.server.session.HashSessionIdManager@14b31e37 - STARTED
 |
 +> ClassRealm[plugin>org.eclipse.jetty:jetty-maven-plugin:9.2.17.v20160517, parent: sun.misc.Launcher$AppClassLoader@18b4aac2]

[INFO] Starting scanner at interval of 5 seconds.
2018-03-22 17:59:41,629 org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:76) DEBUG - psubscribe LCache:*
2018-03-22 17:59:41,630 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) DEBUG - Get 'jedisPool'<class redis.clients.util.Pool>
2018-03-22 17:59:41,630 org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:82) DEBUG - psubscribe fail, retry after 3 seconds
java.lang.ClassCastException: redis.clients.jedis.JedisCluster cannot be cast to redis.clients.util.Pool
	at org.nutz.integration.jedis.JedisAgent.getJedisPool(JedisAgent.java:60)
	at org.nutz.integration.jedis.JedisAgent.jedis(JedisAgent.java:49)
	at org.nutz.plugins.cache.impl.lcache.LCacheManager.jedis(LCacheManager.java:51)
	at org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:77)
	at java.lang.Thread.run(Thread.java:748)
2018-03-22 17:59:42,630 org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:76) DEBUG - psubscribe LCache:*
2018-03-22 17:59:42,631 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) DEBUG - Get 'jedisPool'<class redis.clients.util.Pool>
2018-03-22 17:59:42,631 org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:82) DEBUG - psubscribe fail, retry after 3 seconds
java.lang.ClassCastException: redis.clients.jedis.JedisCluster cannot be cast to redis.clients.util.Pool
	at org.nutz.integration.jedis.JedisAgent.getJedisPool(JedisAgent.java:60)
	at org.nutz.integration.jedis.JedisAgent.jedis(JedisAgent.java:49)
	at org.nutz.plugins.cache.impl.lcache.LCacheManager.jedis(LCacheManager.java:51)
	at org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:77)
	at java.lang.Thread.run(Thread.java:748)
2018-03-22 17:59:43,633 org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:76) DEBUG - psubscribe LCache:*
2018-03-22 17:59:43,633 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) DEBUG - Get 'jedisPool'<class redis.clients.util.Pool>
2018-03-22 17:59:43,634 org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:82) DEBUG - psubscribe fail, retry after 3 seconds
java.lang.ClassCastException: redis.clients.jedis.JedisCluster cannot be cast to redis.clients.util.Pool
	at org.nutz.integration.jedis.JedisAgent.getJedisPool(JedisAgent.java:60)
	at org.nutz.integration.jedis.JedisAgent.jedis(JedisAgent.java:49)
	at org.nutz.plugins.cache.impl.lcache.LCacheManager.jedis(LCacheManager.java:51)
	at org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:77)
	at java.lang.Thread.run(Thread.java:748)
2018-03-22 17:59:44,638 org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:76) DEBUG - psubscribe LCache:*
2018-03-22 17:59:44,638 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) DEBUG - Get 'jedisPool'<class redis.clients.util.Pool>
2018-03-22 17:59:44,638 org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:82) DEBUG - psubscribe fail, retry after 3 seconds
java.lang.ClassCastException: redis.clients.jedis.JedisCluster cannot be cast to redis.clients.util.Pool
	at org.nutz.integration.jedis.JedisAgent.getJedisPool(JedisAgent.java:60)
	at org.nutz.integration.jedis.JedisAgent.jedis(JedisAgent.java:49)
	at org.nutz.plugins.cache.impl.lcache.LCacheManager.jedis(LCacheManager.java:51)
	at org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:77)
	at java.lang.Thread.run(Thread.java:748)

Process finished with exit code 137 (interrupted by signal 9: SIGKILL)

17 回复

原来代码里面是用来缓存微信token的代码如下,现在需要怎么改?

/**
 * Created by wizzer on 2016/7/2.
 */
@IocBean(args = {"refer:dao"})
public class WxConfigService extends Service<Wx_config> {

    @Inject
    JedisCluster jedisCluster;

    public WxConfigService(Dao dao) {
        super(dao);
    }


    /**
     * 自己实现 新增永久图文素材:https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=ACCESS_TOKEN
     * token获取通过redis
     * @param wxid
     * @return
     */
    public WxApi3 getWxApi3(String wxid) {
        Wx_config appInfo = this.fetch(Cnd.where("id", "=", wxid));
        WxApi3 wxApi3 = new WxApi3();
        wxApi3.setAppid(appInfo.getAppid());
        wxApi3.setAppsecret(appInfo.getAppsecret());
        wxApi3.setEncodingAesKey(appInfo.getEncodingAESKey());
        wxApi3.setToken(appInfo.getToken());
        wxApi3.setAccessTokenStore(new WxRedisAccessTokenStore(wxid, jedisCluster));
        return wxApi3;
    }

这是我们自己实现的微信token换token的机制

public class WxRedisAccessTokenStore implements WxAccessTokenStore {
    private final static Log log = Logs.get();

    JedisCluster redisCache;
    String wxid;

    public WxRedisAccessTokenStore(String wxid, JedisCluster redisCache) {
        this.wxid = wxid;
        this.redisCache = redisCache;
    }

    @Override
    public WxAccessToken get() {
        int expires = redisCache.ttl(redisTokenKey()).intValue();
        String value = redisCache.get(redisTokenKey());
        if (value == null)
            return null;

        WxAccessToken wxAccessToken = Json.fromJson(WxAccessToken.class, value);
        wxAccessToken.setExpires(expires);
        return wxAccessToken;
    }

    private String redisTokenKey() {
        return Constant.CACHE_TOKEN_PREFIX + wxid;
    }

    @Override
    public void save(String token, int expires, long lastCacheTimeMillis) {
        WxAccessToken wxAccessToken = new WxAccessToken();
        wxAccessToken.setLastCacheTimeMillis(lastCacheTimeMillis);
        wxAccessToken.setExpires(expires);
        wxAccessToken.setToken(token);
        String json = Json.toJson(wxAccessToken);
        log.debug("增加缓存key:" + redisTokenKey() + ",value:" + json);
        redisCache.setex(redisTokenKey(), expires, json);
    }
}

这样?

@Inject
    private JedisPool jedisPool;

    public synchronized WxApi2 getWxApi2(String wxid) {
        WxApi2Impl wxApi2 = Globals.WxMap.get(wxid);//如果是集群部署请改成redis实现
        if (wxApi2 == null) {
            Wx_config appInfo = wxConfigService.fetch(Cnd.where("id", "=", wxid));
            RedisAccessTokenStore redisAccessTokenStore = new RedisAccessTokenStore();
            redisAccessTokenStore.setTokenKey("nutzwk:wx:token:" + wxid);
            redisAccessTokenStore.setJedisPool(jedisPool);
            wxApi2 = new WxApi2Impl();
            wxApi2.setAppid(appInfo.getAppid());
            wxApi2.setAppsecret(appInfo.getAppsecret());
            wxApi2.setEncodingAesKey(appInfo.getEncodingAESKey());
            wxApi2.setToken(appInfo.getToken());
            wxApi2.setAccessTokenStore(redisAccessTokenStore);
            Globals.WxMap.put(wxid, wxApi2);
        }
        return wxApi2;

    }

//如果是集群部署请改成redis实现
这句话是错误的,,不能用redis存,我是用redis的订阅发布来更新所有实例

得用JedisAgent

jedis什么版本???

不好意思昨天下班了,现在应该是启动项目,权限报错。

   <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.8.1</version>
        </dependency>

我们原来用的是老的nutzwk,redis用来存权限和微信token,现在要缓存单机的redis存权限和微信token,现在应该是启动就报错,权限存redis就报错了,还没到存微信token那

这是shiro的配置文件,启动的时候就报错了

[main]
;-------------Redis作为shiro二级缓存时注释掉这里---------
;cacheManager = org.apache.shiro.cache.ehcache.EhCacheManager
;cacheManager.cacheManagerConfigFile = classpath:ehcache.xml
;-------------Redis作为shiro二级缓存时注释掉这里---------

;-------------Redis作为shiro二级缓存时启用这里---------
jedisAgent = org.nutz.integration.jedis.JedisAgent
cacheManager_ehcache = org.apache.shiro.cache.ehcache.EhCacheManager
cacheManager_ehcache.cacheManagerConfigFile=classpath:ehcache.xml
cacheManager_redis = org.nutz.plugins.cache.impl.redis.RedisCacheManager
cacheManager_redis.mode=kv
cacheManager_redis.debug=true
cacheManager = org.nutz.plugins.cache.impl.lcache.LCacheManager
cacheManager.jedisAgent = $jedisAgent
cacheManager.level1 = $cacheManager_ehcache
cacheManager.level2 = $cacheManager_redis
;-------------Redis作为shiro二级缓存时启用这里---------

# Session
sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager
sessionManager.sessionValidationSchedulerEnabled = false


sessionDAO = org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO
sessionDAO.cacheManager = $cacheManager
sessionDAO.activeSessionsCacheName = shiro-activeSessionCache
sessionManager.sessionDAO = $sessionDAO
securityManager.sessionManager = $sessionManager

# Cookie
sessionIdCookie=org.apache.shiro.web.servlet.SimpleCookie
sessionIdCookie.name=sid
sessionIdCookie.maxAge=-1
sessionIdCookie.httpOnly=true
sessionManager.sessionIdCookie = $sessionIdCookie
sessionManager.sessionIdCookieEnabled = true
sessionManager.globalSessionTimeout = 3600000


sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher
sha256Matcher.storedCredentialsHexEncoded = false
sha256Matcher.hashIterations = 1024
sha256Matcher.hashSalted = true

shiroDbRealm = cn.play.common.shiro.realm.NutDaoRealm
shiroDbRealm.credentialsMatcher = $sha256Matcher

securityManager.sessionManager = $sessionManager
securityManager.realms = $shiroDbRealm
authcStrategy = cn.play.common.shiro.authc.pam.AnySuccessfulStrategy
securityManager.authenticator.authenticationStrategy = $authcStrategy
securityManager.cacheManager = $cacheManager

authc = cn.play.common.shiro.filter.SimpleAuthenticationFilter
authc.loginUrl  = /private/login
logout.redirectUrl= /private/login

[urls]
/private/doLogin    = anon
/assets/**          = anon
/**                 = anon
/private/**         = authc

我在setup中增加,启动提示不能初始化class org.nutz.integration.jedis.JedisAgent, JedisAgent应该不需要ioc配置,我看现在的nutzwk也没有配置

   // 初始化数据表
            initSysData(config, dao);

            //-------------Redis作为shiro二级缓存时启用这里---------
            JedisAgent jedisAgent = ioc.get(JedisAgent.class);
            LCacheManager.me().setJedisAgent(jedisAgent);
            RedisCache.DEBUG = true;
            //-------------Redis作为shiro二级缓存时启用这里---------
2018-03-23 10:20:49,534 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/', '/index'               >> (HomeController.java:117).index       : void       | @Ok(>>:/sysadmin) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,535 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/home/path'        >> (HomeController.java:67).path         : void       | @Ok(beetl:/private/sys/left.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,535 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/home/left'        >> (HomeController.java:42).left         : void       | @Ok(beetl:/private/sys/left.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,535 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/home'             >> (HomeController.java:36).home         : void       | @Ok(beetl:/private/sys/home.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,536 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/open/api/token/get'       >> (TokenController.java:79).get         : Object     | @Ok(json ) @Fail(http:500) | by 0 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,536 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/open/api/token/list'      >> (TokenController.java:100).tokenList  : Object     | @Ok(json ) @Fail(http:500) | by 0 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,537 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/open/api/token/refresh'   >> (TokenController.java:123).tokenRefresh : Object     | @Ok(json ) @Fail(http:500) | by 0 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,538 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/open/weixin/crawlPage'    >> (WeixinController.java:69).crawlPage  : void       | @Ok(json:full) @Fail(http:200) | by 0 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,538 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/open/weixin/api', '/open/weixin/api/?' >> (WeixinController.java:59).msgIn      : View       | @Ok(json:full) @Fail(http:200) | by 0 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,538 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/reply/txt'     >> (WxReplyTxtController.java:39).index  : void       | @Ok(beetl:/private/wx/reply/txt/index.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,539 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/reply/txt/add' >> (WxReplyTxtController.java:46).add    : void       | @Ok(beetl:/private/wx/reply/txt/add.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,539 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/reply/txt/delete/?' >> (WxReplyTxtController.java:87).delete : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,540 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/reply/txt/data' >> (WxReplyTxtController.java:112).data  : Object     | @Ok(json:full) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,540 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/reply/txt/adddo' >> (WxReplyTxtController.java:54).addDo  : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,541 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/reply/txt/edit/?' >> (WxReplyTxtController.java:65).edit   : Object     | @Ok(beetl:/private/wx/reply/txt/edit.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,541 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/reply/txt/editdo' >> (WxReplyTxtController.java:74).editDo : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,541 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/reply/txt/delete' >> (WxReplyTxtController.java:101).deletes : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,542 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/account'  >> (WxConfigController.java:38).index    : void       | @Ok(beetl:/private/wx/account/index.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,542 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/account/add' >> (WxConfigController.java:44).add      : void       | @Ok(beetl:/private/wx/account/add.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,543 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/account/delete/?' >> (WxConfigController.java:90).delete   : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,543 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/account/data' >> (WxConfigController.java:102).data    : Object     | @Ok(json:full) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,544 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/account/adddo' >> (WxConfigController.java:54).addDo    : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,545 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/account/edit/?' >> (WxConfigController.java:65).edit     : Object     | @Ok(beetl:/private/wx/account/edit.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,545 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/account/editdo' >> (WxConfigController.java:77).editDo   : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,546 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/sys/task'         >> (TaskController.java:41).index        : void       | @Ok(beetl:/private/sys/task/index.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,546 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/sys/task/add'     >> (TaskController.java:56).add          : void       | @Ok(beetl:/private/sys/task/add.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,546 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/sys/task/delete', '/private/sys/task/delete/?' >> (TaskController.java:136).delete      : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,547 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/sys/task/enable/?' >> (TaskController.java:178).enable      : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,548 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/sys/task/disable/?' >> (TaskController.java:208).disable     : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,549 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/sys/task/data'    >> (TaskController.java:47).data         : Object     | @Ok(json:full) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,549 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/sys/task/adddo'   >> (TaskController.java:64).addDo        : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,550 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/sys/task/edit/?'  >> (TaskController.java:89).edit         : Object     | @Ok(beetl:/private/sys/task/edit.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,550 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/sys/task/editdo'  >> (TaskController.java:100).editDo      : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,551 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/menu', '/private/wx/conf/menu/index/?' >> (WxMenuController.java:60).index      : void       | @Ok(beetl:/private/wx/menu/index.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,552 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/menu/add/?' >> (WxMenuController.java:87).add        : void       | @Ok(beetl:/private/wx/menu/add.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,552 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/menu/delete/?' >> (WxMenuController.java:170).delete    : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,553 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/menu/keyword/?' >> (WxMenuController.java:276).keyword   : void       | @Ok(beetl:/private/wx/menu/keyword.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,553 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/menu/newsData/?' >> (WxMenuController.java:303).newsData  : Object     | @Ok(json:full) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,554 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/menu/adddo' >> (WxMenuController.java:112).addDo     : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,555 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/menu/edit/?' >> (WxMenuController.java:146).edit      : Object     | @Ok(beetl:/private/wx/menu/edit.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,555 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/menu/editdo' >> (WxMenuController.java:157).editDo    : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,556 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/menu/checkdo' >> (WxMenuController.java:96).checkDo    : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,556 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/menu/sortdo' >> (WxMenuController.java:127).sortDo    : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,556 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/menu/pushMenu/?' >> (WxMenuController.java:185).pushMenu  : Object     | @Ok(json ) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,557 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/menu/keywordData' >> (WxMenuController.java:283).keywordData : Object     | @Ok(json:full) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,557 org.nutz.mvc.impl.UrlMappingImpl.print(UrlMappingImpl.java:146) DEBUG -    '/private/wx/conf/menu/news/?' >> (WxMenuController.java:296).news      : void       | @Ok(beetl:/private/wx/menu/news.html) @Fail(http:500) | by 1 Filters | (I:UTF-8/O:UTF-8)
2018-03-23 10:20:49,558 org.nutz.mvc.impl.NutLoading.evalUrlMapping(NutLoading.java:217) INFO  - Found 280 module methods
2018-03-23 10:20:49,558 org.nutz.mvc.impl.NutLoading.evalLocalization(NutLoading.java:303) DEBUG - Localization: org.nutz.mvc.impl.NutMessageLoader('locales/')  dft<zh_CN>
2018-03-23 10:20:49,560 org.nutz.resource.Scans.scan(Scans.java:274) DEBUG - Found 6 resource by src( locales/ ) , regex( ^.+[.]properties$ )
2018-03-23 10:20:49,561 org.nutz.mvc.impl.NutMessageLoader.load(NutMessageLoader.java:27) DEBUG - Load Messages in 6 resource : [[File[/Users/guolifei/Documents/codespace/play/target/classes/locales/en_US/system.properties], File[/Users/guolifei/Documents/codespace/play/target/classes/locales/en_US/sys/role.properties], File[/Users/guolifei/Documents/codespace/play/target/classes/locales/en_US/sys/unit.properties], File[/Users/guolifei/Documents/codespace/play/target/classes/locales/zh_CN/system.properties], File[/Users/guolifei/Documents/codespace/play/target/classes/locales/zh_CN/sys/role.properties], File[/Users/guolifei/Documents/codespace/play/target/classes/locales/zh_CN/sys/unit.properties]]]
2018-03-23 10:20:49,569 org.nutz.mvc.impl.NutMessageLoader.load(NutMessageLoader.java:95) DEBUG - Message Loaded, size = 3
2018-03-23 10:20:49,571 org.nutz.mvc.impl.NutLoading.createSessionProvider(NutLoading.java:410) INFO  - SessionBy --> org.nutz.integration.shiro.ShiroSessionProvider@646e6d07
2018-03-23 10:20:49,571 org.nutz.mvc.impl.NutLoading.evalSetup(NutLoading.java:271) INFO  - Setup application...
2018-03-23 10:20:49,572 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) DEBUG - Get 'dao'<interface org.nutz.dao.Dao>
2018-03-23 10:20:49,582 org.nutz.resource.Scans.scan(Scans.java:274) DEBUG - Found 137 resource by src( cn/play/modules/ ) , regex( ^.+[.]class$ )
2018-03-23 10:20:49,728 org.nutz.dao.impl.sql.run.NutDaoExecutor.printSQL(NutDaoExecutor.java:388) DEBUG - SELECT COUNT(*) FROM sys_user 
2018-03-23 10:20:49,753 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) DEBUG - Get 'jedisAgent'<class org.nutz.integration.jedis.JedisAgent>
2018-03-23 10:20:49,754 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:177) DEBUG - 	 >> Load definition name=jedisAgent
2018-03-23 10:20:49,754 cn.play.common.core.Setup.init(Setup.java:69) ERROR - Setup 初始化异常!
org.nutz.ioc.IocException: IocBean[jedisAgent] For object [jedisAgent] - type:[class org.nutz.integration.jedis.JedisAgent]
	at org.nutz.ioc.impl.NutIoc.get(NutIoc.java:218)
	at org.nutz.ioc.impl.NutIoc.get(NutIoc.java:239)
	at org.nutz.ioc.impl.NutIoc.get(NutIoc.java:146)
	at cn.play.common.core.Setup.init(Setup.java:52)
	at org.nutz.mvc.impl.NutLoading.evalSetup(NutLoading.java:274)
	at org.nutz.mvc.impl.NutLoading.load(NutLoading.java:121)
	at org.nutz.mvc.ActionHandler.<init>(ActionHandler.java:19)
	at org.nutz.mvc.NutFilter._init(NutFilter.java:91)
	at org.nutz.mvc.NutFilter.init(NutFilter.java:69)
	at org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:138)
	at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:852)
	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:298)
	at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
	at org.eclipse.jetty.maven.plugin.JettyWebAppContext.startWebapp(JettyWebAppContext.java:297)
	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
	at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:366)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:163)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
	at org.eclipse.jetty.server.Server.start(Server.java:387)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
	at org.eclipse.jetty.server.Server.doStart(Server.java:354)
	at org.eclipse.jetty.maven.plugin.JettyServer.doStart(JettyServer.java:73)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:535)
	at org.eclipse.jetty.maven.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:358)
	at org.eclipse.jetty.maven.plugin.JettyRunMojo.execute(JettyRunMojo.java:167)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
	at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
Caused by: org.nutz.ioc.ObjectLoadException: Object 'jedisAgent' without define!
	at org.nutz.ioc.loader.combo.ComboIocLoader.load(ComboIocLoader.java:166)
	at org.nutz.ioc.impl.NutIoc.get(NutIoc.java:180)
	... 60 more
2018-03-23 10:20:49,755 org.nutz.mvc.impl.NutLoading.load(NutLoading.java:141) INFO  - Nutz.Mvc[play] is up in 2101ms
2018-03-23 10:20:49,755 org.nutz.mvc.NutFilter._init(NutFilter.java:117) INFO  - exclusionsPrefix  = ^(/assets/|/druid/|/upload/|/apidoc/)
[INFO] Started o.e.j.m.p.JettyWebAppContext@545b5ed0{/play,file:/Users/guolifei/Documents/codespace/play/src/main/webapp/,AVAILABLE}{file:/Users/guolifei/Documents/codespace/play/src/main/webapp/}
[INFO] Opened /Users/guolifei/Documents/codespace/play/target/access-2018_03_23.log
[INFO] Started ServerConnector@e36bc01{HTTP/1.1}{0.0.0.0:8080}
[INFO] Started @9306ms
[INFO] Started Jetty Server
[INFO] org.eclipse.jetty.maven.plugin.JettyServer@2c26ba07 - STARTED
 += qtp1636256669{STARTED,8<=10<=200,i=5,q=0} - STARTED
 |   +- 19 qtp1636256669-19-selector-ServerConnectorManager@3cdc571/0 BLOCKED @ sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
 |   +- 21 qtp1636256669-21 TIMED_WAITING @ sun.misc.Unsafe.park(Native Method) IDLE
 |   +- 23 qtp1636256669-23-acceptor-0@656b68ee-ServerConnector@e36bc01{HTTP/1.1}{0.0.0.0:8080} RUNNABLE @ java.lang.ClassLoader$NativeLibrary.find(Native Method)
 |   +- 20 qtp1636256669-20 TIMED_WAITING @ sun.misc.Unsafe.park(Native Method) IDLE
 |   +- 17 qtp1636256669-17-selector-ServerConnectorManager@3cdc571/1 BLOCKED @ java.lang.ClassLoader.findNative(ClassLoader.java:1960)
 |   +- 14 qtp1636256669-14 TIMED_WAITING @ sun.misc.Unsafe.park(Native Method) IDLE
 |   +- 18 qtp1636256669-18-selector-ServerConnectorManager@3cdc571/3 BLOCKED @ java.lang.ClassLoader.findNative(ClassLoader.java:1960)
 |   +- 15 qtp1636256669-15 TIMED_WAITING @ sun.misc.Unsafe.park(Native Method) IDLE
 |   +- 16 qtp1636256669-16-selector-ServerConnectorManager@3cdc571/2 RUNNABLE @ java.lang.ClassLoader$NativeLibrary.find(Native Method)
 |   +- 24 qtp1636256669-24 TIMED_WAITING @ sun.misc.Unsafe.park(Native Method) IDLE
 += org.eclipse.jetty.maven.plugin.MavenServerConnector@1c8f71a7 - STARTED
 += org.eclipse.jetty.server.handler.HandlerCollection@27e21083[org.eclipse.jetty.server.handler.ContextHandlerCollection@67a6a2d0[o.e.j.m.p.JettyWebAppContext@545b5ed0{/play,file:/Users/guolifei/Documents/codespace/play/src/main/webapp/,AVAILABLE}{file:/Users/guolifei/Documents/codespace/play/src/main/webapp/}], org.eclipse.jetty.server.handler.DefaultHandler@49e0b123, org.eclipse.jetty.server.handler.RequestLogHandler@2e85e3f1] - STARTED
 |   += org.eclipse.jetty.server.handler.ContextHandlerCollection@67a6a2d0[o.e.j.m.p.JettyWebAppContext@545b5ed0{/play,file:/Users/guolifei/Documents/codespace/play/src/main/webapp/,AVAILABLE}{file:/Users/guolifei/Documents/codespace/play/src/main/webapp/}] - STARTED
 |   |   += o.e.j.m.p.JettyWebAppContext@545b5ed0{/play,file:/Users/guolifei/Documents/codespace/play/src/main/webapp/,AVAILABLE}{file:/Users/guolifei/Documents/codespace/play/src/main/webapp/} - STARTED
 |   |       += org.eclipse.jetty.server.session.SessionHandler@195498aa - STARTED
 |   |       |   += org.eclipse.jetty.server.session.HashSessionManager@68a305eb - STARTED
 |   |       |   |   += org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@4b360972 - STARTED
 |   |       |   |   |   +- sun.misc.Unsafe.park(Native Method)
 |   |       |   |   |   +- java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
 |   |       |   |   |   +- java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
 |   |       |   |   |   +- java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
 |   |       |   |   |   +- java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
 |   |       |   |   |   +- java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
 |   |       |   |   |   +- java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
 |   |       |   |   |   +- java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 |   |       |   |   |   +- java.lang.Thread.run(Thread.java:748)
 |   |       |   |   +~ org.eclipse.jetty.server.session.HashSessionIdManager@793d09e - STARTED
 |   |       |   |   +~ org.eclipse.jetty.security.SecurityHandler$1@68821f6
 |   |       |   += org.eclipse.jetty.security.ConstraintSecurityHandler@3ba46845 - STARTED
 |   |       |       +- org.eclipse.jetty.security.DefaultAuthenticatorFactory@40a28bda
 |   |       |       += org.eclipse.jetty.servlet.ServletHandler@592cb470 - STARTED
 |   |       |       |   += org.eclipse.jetty.servlet.ListenerHolder@1e6cb932 - STARTED
 |   |       |       |   += org.eclipse.jetty.servlet.ListenerHolder@6921cfa - STARTED
 |   |       |       |   += default@5c13d641==org.eclipse.jetty.servlet.DefaultServlet,0,true - STARTED
 |   |       |       |   |   +- aliases=false
 |   |       |       |   |   +- dirAllowed=true
 |   |       |       |   |   +- maxCacheSize=256000000
 |   |       |       |   |   +- maxCachedFileSize=200000000
 |   |       |       |   |   +- welcomeServlets=false
 |   |       |       |   |   +- useFileMappedBuffer=true
 |   |       |       |   |   +- gzip=false
 |   |       |       |   |   +- acceptRanges=true
 |   |       |       |   |   +- etags=false
 |   |       |       |   |   +- maxCachedFiles=2048
 |   |       |       |   |   +- redirectWelcome=false
 |   |       |       |   += jsp@19c47==org.eclipse.jetty.jsp.JettyJspServlet,0,true - STARTED
 |   |       |       |   |   +- fork=false
 |   |       |       |   |   +- logVerbosityLevel=DEBUG
 |   |       |       |   |   +- xpoweredBy=false
 |   |       |       |   |   +- compilerSourceVM=1.7
 |   |       |       |   |   +- compilerTargetVM=1.7
 |   |       |       |   |   +- com.sun.appserv.jsp.classpath=/Users/guolifei/.m2/repository/org/eclipse/jetty/jetty-maven-plugin/9.2.17.v20160517/jetty-maven-plugin-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/sonatype/sisu/sisu-inject-bean/2.1.1/sisu-inject-bean-2.1.1.jar:/Users/guolifei/.m2/repository/org/sonatype/sisu/sisu-guice/2.9.4/sisu-guice-2.9.4-no_aop.jar:/Users/guolifei/.m2/repository/org/codehaus/plexus/plexus-utils/2.0.6/plexus-utils-2.0.6.jar:/Users/guolifei/.m2/repository/org/sonatype/aether/aether-util/1.11/aether-util-1.11.jar:/Users/guolifei/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar:/Users/guolifei/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar:/Users/guolifei/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar:/Users/guolifei/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar:/Users/guolifei/.m2/repository/org/apache/maven/plugin-tools/maven-plugin-tools-api/3.1/maven-plugin-tools-api-3.1.jar:/Users/guolifei/.m2/repository/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/jetty-util/9.2.17.v20160517/jetty-util-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/jetty-webapp/9.2.17.v20160517/jetty-webapp-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/jetty-xml/9.2.17.v20160517/jetty-xml-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/jetty-servlet/9.2.17.v20160517/jetty-servlet-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/jetty-quickstart/9.2.17.v20160517/jetty-quickstart-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/jetty-jaas/9.2.17.v20160517/jetty-jaas-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/jetty-security/9.2.17.v20160517/jetty-security-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/jetty-plus/9.2.17.v20160517/jetty-plus-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/jetty-jndi/9.2.17.v20160517/jetty-jndi-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/jetty-server/9.2.17.v20160517/jetty-server-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/jetty-http/9.2.17.v20160517/jetty-http-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/jetty-io/9.2.17.v20160517/jetty-io-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/jetty-jmx/9.2.17.v20160517/jetty-jmx-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/jetty-annotations/9.2.17.v20160517/jetty-annotations-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar:/Users/guolifei/.m2/repository/org/ow2/asm/asm/5.0.1/asm-5.0.1.jar:/Users/guolifei/.m2/repository/org/ow2/asm/asm-commons/5.0.1/asm-commons-5.0.1.jar:/Users/guolifei/.m2/repository/org/ow2/asm/asm-tree/5.0.1/asm-tree-5.0.1.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/websocket/javax-websocket-server-impl/9.2.17.v20160517/javax-websocket-server-impl-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/websocket/javax-websocket-client-impl/9.2.17.v20160517/javax-websocket-client-impl-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/javax/websocket/javax.websocket-api/1.0/javax.websocket-api-1.0.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/websocket/websocket-server/9.2.17.v20160517/websocket-server-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/websocket/websocket-common/9.2.17.v20160517/websocket-common-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/websocket/websocket-api/9.2.17.v20160517/websocket-api-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/websocket/websocket-client/9.2.17.v20160517/websocket-client-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/websocket/websocket-servlet/9.2.17.v20160517/websocket-servlet-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/apache-jsp/9.2.17.v20160517/apache-jsp-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/toolchain/jetty-schemas/3.1.M0/jetty-schemas-3.1.M0.jar:/Users/guolifei/.m2/repository/org/mortbay/jasper/apache-jsp/8.0.33/apache-jsp-8.0.33.jar:/Users/guolifei/.m2/repository/org/mortbay/jasper/apache-el/8.0.33/apache-el-8.0.33.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/orbit/org.eclipse.jdt.core/3.8.2.v20130121/org.eclipse.jdt.core-3.8.2.v20130121.jar:/Users/guolifei/.m2/repository/org/eclipse/jetty/apache-jstl/9.2.17.v20160517/apache-jstl-9.2.17.v20160517.jar:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-spec/1.2.1/taglibs-standard-spec-1.2.1.jar:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar:/Users/guolifei/.m2/repository/javax/transaction/javax.transaction-api/1.2/javax.transaction-api-1.2.jar
 |   |       |       |   |   +- scratchdir=/Users/guolifei/Documents/codespace/play/target/tmp/jsp
 |   |       |       |   +- [/]=>default
 |   |       |       |   +- [*.jsp, *.jspf, *.jspx, *.xsp, *.JSP, *.JSPF, *.JSPX, *.XSP]=>jsp
 |   |       |       |   += org.eclipse.jetty.servlet.ListenerHolder@523abba9 - STARTED
 |   |       |       |   += ShiroFilter - STARTED
 |   |       |       |   += route - STARTED
 |   |       |       |   += play - STARTED
 |   |       |       |   |   +- ignore=^(.+[.])(jsp|png|gif|jpg|js|css|jspx|jpeg|html|mp3|mp4|ico)$
 |   |       |       |   |   +- modules=cn.play.common.core.Module
 |   |       |       |   |   +- exclusions=/assets/*,/druid/*,/upload/*,/apidoc/*
 |   |       |       |   += DruidStatView@43afa21b==com.alibaba.druid.support.http.StatViewServlet,-1,false - STARTED
 |   |       |       |   |   +- allow=127.0.0.1
 |   |       |       |   |   +- exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*,/assets/*,/upload/*,/apidoc/*
 |   |       |       |   +- [/*]/[]==15=>ShiroFilter
 |   |       |       |   +- [/*]/[]==0=>route
 |   |       |       |   +- [/*]/[]==15=>play
 |   |       |       |   +- [/druid/*]=>DruidStatView
 |   |       |       |
 |   |       |       +> null
 |   |       |       +> null
 |   |       |       +> null
 |   |       |       +> []
 |   |       |       +> /={TRACE={RoleInfo,F,C[],None}, TRACE.omission={RoleInfo[],None}}
 |   |       += org.eclipse.jetty.servlet.ErrorPageErrorHandler@6e090aaa - STARTED
 |   |       += org.eclipse.jetty.annotations.ServletContainerInitializersStarter@15d79b70 - STARTED
 |   |       |
 |   |       +> WebAppClassLoader=play@115dcaea
 |   |       |   +- file:/Users/guolifei/Documents/codespace/play/target/classes/
 |   |       |   +- file:/Users/guolifei/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/nutz/nutz/1.r.62/nutz-1.r.62.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/nutz/nutz-plugins-daocache/1.r.62/nutz-plugins-daocache-1.r.62.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/nutz/nutz-plugins-cache/1.r.62/nutz-plugins-cache-1.r.62.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/nutz/nutz-integration-quartz/1.r.62/nutz-integration-quartz-1.r.62.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/nutz/nutz-integration-jedis/1.r.62/nutz-integration-jedis-1.r.62.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/nutz/nutz-integration-shiro/1.r.62/nutz-integration-shiro-1.r.62.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.24/jcl-over-slf4j-1.7.24.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/nutz/nutzwx/1.r.62/nutzwx-1.r.62.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/nutz/nutz-plugins-views/1.r.62/nutz-plugins-views-1.r.62.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/cn/enilu/tools/nutzwk-code-generator/1.1/nutzwk-code-generator-1.1.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/atteo/evo-inflector/1.0.1/evo-inflector-1.0.1.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/commons-cli/commons-cli/1.2/commons-cli-1.2.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/apache/velocity/velocity/1.7/velocity-1.7.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/com/vdurmont/emoji-java/3.1.3/emoji-java-3.1.3.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/quartz-scheduler/quartz/2.2.3/quartz-2.2.3.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/c3p0/c3p0/0.9.1.1/c3p0-0.9.1.1.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/apache/shiro/shiro-web/1.2.5/shiro-web-1.2.5.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/apache/shiro/shiro-core/1.2.5/shiro-core-1.2.5.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/commons-beanutils/commons-beanutils/1.8.3/commons-beanutils-1.8.3.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/slf4j/slf4j-log4j12/1.7.21/slf4j-log4j12-1.7.21.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/slf4j/slf4j-api/1.7.21/slf4j-api-1.7.21.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/cn/apiclub/tool/simplecaptcha/1.2.2/simplecaptcha-1.2.2.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/com/alibaba/druid/1.0.24/druid-1.0.24.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/mysql/mysql-connector-java/5.1.44/mysql-connector-java-5.1.44.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/net/sourceforge/jtds/jtds/1.3.1/jtds-1.3.1.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/com/google/zxing/javase/3.2.1/javase-3.2.1.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/com/beust/jcommander/1.48/jcommander-1.48.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/net/sf/ehcache/ehcache/2.10.2.2.21/ehcache-2.10.2.2.21.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/redis/clients/jedis/2.8.1/jedis-2.8.1.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/apache/commons/commons-email/1.4/commons-email-1.4.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/com/sun/mail/javax.mail/1.5.5/javax.mail-1.5.5.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/javax/activation/activation/1.1.1/activation-1.1.1.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/apache/shiro/shiro-all/1.3.0/shiro-all-1.3.0.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/commons-beanutils/commons-beanutils-core/1.8.3/commons-beanutils-core-1.8.3.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/com/ibeetl/beetl/2.5.0/beetl-2.5.0.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/antlr/antlr4-runtime/4.2/antlr4-runtime-4.2.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/abego/treelayout/org.abego.treelayout.core/1.0.1/org.abego.treelayout.core-1.0.1.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/antlr/antlr4-annotations/4.2/antlr4-annotations-4.2.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/commons-logging/commons-logging/1.1/commons-logging-1.1.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/brickred/socialauth/4.12/socialauth-4.12.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/json/json/20160212/json-20160212.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/joda-time/joda-time/2.9.4/joda-time-2.9.4.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/io/jsonwebtoken/jjwt/0.6.0/jjwt-0.6.0.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.8.1/jackson-databind-2.8.1.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.8.0/jackson-annotations-2.8.0.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.8.1/jackson-core-2.8.1.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/com/google/guava/guava/15.0/guava-15.0.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/org/jsoup/jsoup/1.8.1/jsoup-1.8.1.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/com/google/zxing/core/3.3.0/core-3.3.0.jar
 |   |       |   +- file:/Users/guolifei/.m2/repository/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar
 |   |       |   +- ClassRealm[plugin>org.eclipse.jetty:jetty-maven-plugin:9.2.17.v20160517, parent: sun.misc.Launcher$AppClassLoader@18b4aac2]
 |   |       +> javax.servlet.context.tempdir=/Users/guolifei/Documents/codespace/play/target/tmp
 |   |       +> org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern=.*/javax.servlet-[^/]*\.jar$|.*/servlet-api-[^/]*\.jar$|.*javax.servlet.jsp.jstl-[^/]*\.jar|.*taglibs-standard-impl-.*\.jar
 |   |       +> org.eclipse.jetty.resource.postOverlay=file:/Users/guolifei/Documents/codespace/play/src/main/webapp/
 |   |       +> org.eclipse.jetty.lifecyleCallbackCollection=org.eclipse.jetty.plus.annotation.LifeCycleCallbackCollection@33430fc
 |   |       +> org.eclipse.jetty.tmpdirConfigured=true
 |   |       +> org.eclipse.jetty.server.Executor=qtp1636256669{STARTED,8<=10<=200,i=5,q=0}
 |   |       +> org.eclipse.jetty.injectionCollection=org.eclipse.jetty.plus.annotation.InjectionCollection@45424c0
 |   |       +> org.apache.catalina.jsp_classpath=/Users/guolifei/Documents/codespace/play/target/classes:/Users/guolifei/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar:/Users/guolifei/.m2/repository/org/nutz/nutz/1.r.62/nutz-1.r.62.jar:/Users/guolifei/.m2/repository/org/nutz/nutz-plugins-daocache/1.r.62/nutz-plugins-daocache-1.r.62.jar:/Users/guolifei/.m2/repository/org/nutz/nutz-plugins-cache/1.r.62/nutz-plugins-cache-1.r.62.jar:/Users/guolifei/.m2/repository/org/nutz/nutz-integration-quartz/1.r.62/nutz-integration-quartz-1.r.62.jar:/Users/guolifei/.m2/repository/org/nutz/nutz-integration-jedis/1.r.62/nutz-integration-jedis-1.r.62.jar:/Users/guolifei/.m2/repository/org/nutz/nutz-integration-shiro/1.r.62/nutz-integration-shiro-1.r.62.jar:/Users/guolifei/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.24/jcl-over-slf4j-1.7.24.jar:/Users/guolifei/.m2/repository/org/nutz/nutzwx/1.r.62/nutzwx-1.r.62.jar:/Users/guolifei/.m2/repository/org/nutz/nutz-plugins-views/1.r.62/nutz-plugins-views-1.r.62.jar:/Users/guolifei/.m2/repository/cn/enilu/tools/nutzwk-code-generator/1.1/nutzwk-code-generator-1.1.jar:/Users/guolifei/.m2/repository/org/atteo/evo-inflector/1.0.1/evo-inflector-1.0.1.jar:/Users/guolifei/.m2/repository/commons-cli/commons-cli/1.2/commons-cli-1.2.jar:/Users/guolifei/.m2/repository/org/apache/velocity/velocity/1.7/velocity-1.7.jar:/Users/guolifei/.m2/repository/com/vdurmont/emoji-java/3.1.3/emoji-java-3.1.3.jar:/Users/guolifei/.m2/repository/org/quartz-scheduler/quartz/2.2.3/quartz-2.2.3.jar:/Users/guolifei/.m2/repository/c3p0/c3p0/0.9.1.1/c3p0-0.9.1.1.jar:/Users/guolifei/.m2/repository/org/apache/shiro/shiro-web/1.2.5/shiro-web-1.2.5.jar:/Users/guolifei/.m2/repository/org/apache/shiro/shiro-core/1.2.5/shiro-core-1.2.5.jar:/Users/guolifei/.m2/repository/commons-beanutils/commons-beanutils/1.8.3/commons-beanutils-1.8.3.jar:/Users/guolifei/.m2/repository/org/slf4j/slf4j-log4j12/1.7.21/slf4j-log4j12-1.7.21.jar:/Users/guolifei/.m2/repository/org/slf4j/slf4j-api/1.7.21/slf4j-api-1.7.21.jar:/Users/guolifei/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar:/Users/guolifei/.m2/repository/cn/apiclub/tool/simplecaptcha/1.2.2/simplecaptcha-1.2.2.jar:/Users/guolifei/.m2/repository/com/alibaba/druid/1.0.24/druid-1.0.24.jar:/Users/guolifei/.m2/repository/mysql/mysql-connector-java/5.1.44/mysql-connector-java-5.1.44.jar:/Users/guolifei/.m2/repository/net/sourceforge/jtds/jtds/1.3.1/jtds-1.3.1.jar:/Users/guolifei/.m2/repository/com/google/zxing/javase/3.2.1/javase-3.2.1.jar:/Users/guolifei/.m2/repository/com/beust/jcommander/1.48/jcommander-1.48.jar:/Users/guolifei/.m2/repository/net/sf/ehcache/ehcache/2.10.2.2.21/ehcache-2.10.2.2.21.jar:/Users/guolifei/.m2/repository/redis/clients/jedis/2.8.1/jedis-2.8.1.jar:/Users/guolifei/.m2/repository/org/apache/commons/commons-pool2/2.4.2/commons-pool2-2.4.2.jar:/Users/guolifei/.m2/repository/org/apache/commons/commons-email/1.4/commons-email-1.4.jar:/Users/guolifei/.m2/repository/com/sun/mail/javax.mail/1.5.5/javax.mail-1.5.5.jar:/Users/guolifei/.m2/repository/javax/activation/activation/1.1.1/activation-1.1.1.jar:/Users/guolifei/.m2/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar:/Users/guolifei/.m2/repository/org/apache/shiro/shiro-all/1.3.0/shiro-all-1.3.0.jar:/Users/guolifei/.m2/repository/commons-beanutils/commons-beanutils-core/1.8.3/commons-beanutils-core-1.8.3.jar:/Users/guolifei/.m2/repository/com/ibeetl/beetl/2.5.0/beetl-2.5.0.jar:/Users/guolifei/.m2/repository/org/antlr/antlr4-runtime/4.2/antlr4-runtime-4.2.jar:/Users/guolifei/.m2/repository/org/abego/treelayout/org.abego.treelayout.core/1.0.1/org.abego.treelayout.core-1.0.1.jar:/Users/guolifei/.m2/repository/org/antlr/antlr4-annotations/4.2/antlr4-annotations-4.2.jar:/Users/guolifei/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar:/Users/guolifei/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar:/Users/guolifei/.m2/repository/commons-logging/commons-logging/1.1/commons-logging-1.1.jar:/Users/guolifei/.m2/repository/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar:/Users/guolifei/.m2/repository/org/brickred/socialauth/4.12/socialauth-4.12.jar:/Users/guolifei/.m2/repository/org/json/json/20160212/json-20160212.jar:/Users/guolifei/.m2/repository/joda-time/joda-time/2.9.4/joda-time-2.9.4.jar:/Users/guolifei/.m2/repository/io/jsonwebtoken/jjwt/0.6.0/jjwt-0.6.0.jar:/Users/guolifei/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.8.1/jackson-databind-2.8.1.jar:/Users/guolifei/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.8.0/jackson-annotations-2.8.0.jar:/Users/guolifei/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.8.1/jackson-core-2.8.1.jar:/Users/guolifei/.m2/repository/com/google/guava/guava/15.0/guava-15.0.jar:/Users/guolifei/.m2/repository/org/jsoup/jsoup/1.8.1/jsoup-1.8.1.jar:/Users/guolifei/.m2/repository/com/google/zxing/core/3.3.0/core-3.3.0.jar:/Users/guolifei/.m2/repository/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar
 |   |       +> org.eclipse.jetty.runAsCollection=org.eclipse.jetty.plus.annotation.RunAsCollection@22ae32ba
 |   |       +> org.eclipse.jetty.containerInitializerStarter=org.eclipse.jetty.annotations.ServletContainerInitializersStarter@15d79b70
 |   |       +> org.apache.shiro.web.env.EnvironmentLoader.ENVIRONMENT_ATTRIBUTE_KEY=org.apache.shiro.web.env.IniWebEnvironment@b8b2184
 |   |       +> _NUTZ_LOADING_CONTEXT_={
   "sys.java.home": "/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre",
   "env.PWD": "/Users/guolifei/Documents/codespace/play",
   "sys.gopherProxySet": "false",
   "sys.java.runtime.version": "1.8.0_161-b12",
   "env.LC_CTYPE": "zh_CN.UTF-8",
   "sys.user.home": "/Users/guolifei",
   "env.HOME": "/Users/guolifei",
   "sys.idea.version": "2017.3.5",
   "sys.java.vm.info": "mixed mode",
   "sys.sun.management.compiler": "HotSpot 64-Bit Tiered Compilers",
   "sys.user.timezone": "Asia/Shanghai",
   "sys.os.arch": "x86_64",
   "sys.java.specification.version": "1.8",
   "sys.maven.home": "/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3",
   "env.JAVA_MAIN_CLASS_88489": "org.codehaus.classworlds.Launcher",
   "sys.sun.java.launcher": "SUN_STANDARD",
   "sys.user.country": "CN",
   "sys.java.endorsed.dirs": "/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/endorsed",
   "sys.sun.cpu.isalist": "",
   "sys.classworlds.conf": "/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3/bin/m2.conf",
   "sys.user.name": "guolifei",
   "sys.sun.arch.data.model": "64",
   "sys.sun.cpu.endian": "little",
   "sys.sun.boot.class.path": "/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/classes",
   "sys.java.ext.dirs": "/Users/guolifei/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java",
   "sys.java.vm.name": "Java HotSpot(TM) 64-Bit Server VM",
   "env.VERSIONER_PYTHON_VERSION": "2.7",
   "sys.java.vm.vendor": "Oracle Corporation",
   "sys.java.specification.name": "Java Platform API Specification",
   "sys.line.separator": "\n",
   "sys.guice.disable.misplaced.annotation.check": "true",
   "sys.java.class.path": "/Applications/IntelliJ IDEA.app/Contents/plugins/maven/lib/maven3/boot/plexus-classworlds-2.5.2.jar:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar",
   "env.VERSIONER_PYTHON_PREFER_32_BIT": "no",
   "sys.java.vendor.url.bug": "http://bugreport.sun.com/bugreport/",
   "env.Apple_PubSub_Socket_Render": "/private/tmp/com.apple.launchd.USEmNgGFRv/Render",
   "sys.java.runtime.name": "Java(TM) SE Runtime Environment",
   "sys.file.separator": "/",
   "sys.sun.boot.library.path": "/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/jre/lib",
   "sys.java.awt.printerjob": "sun.lwawt.macosx.CPrinterJob",
   "env.XPC_SERVICE_NAME": "com.jetbrains.intellij.4296",
   "sys.os.name": "Mac OS X",
   "env.PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",
   "sys.path.separator": ":",
   "sys.sun.jnu.encoding": "UTF-8",
   "sys.java.class.version": "52.0",
   "sys.java.vm.specification.version": "1.8",
   "sys.java.library.path": "/Users/guolifei/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.",
   "env.XPC_FLAGS": "0x0",
   "env.LOGNAME": "guolifei",
   "sys.awt.toolkit": "sun.lwawt.macosx.LWCToolkit",
   "env.__CF_USER_TEXT_ENCODING": "0x1F5:0x19:0x34",
   "sys.user.language": "zh",
   "sys.java.vm.specification.vendor": "Oracle Corporation",
   "sys.java.vm.version": "25.161-b12",
   "sys.user.dir": "/Users/guolifei/Documents/codespace/play",
   "sys.file.encoding": "UTF-8",
   "env.SHELL": "/bin/bash",
   "sys.file.encoding.pkg": "sun.io",
   "sys.java.version": "1.8.0_161",
   "sys.java.specification.vendor": "Oracle Corporation",
   "sys.java.awt.graphicsenv": "sun.awt.CGraphicsEnvironment",
   "sys.java.io.tmpdir": "/var/folders/ky/w_hssx9n6gn_0y8mzs6z15t40000gn/T/",
   "app.root": "/Users/guolifei/Documents/codespace/play/src/main/webapp",
   "env.SSH_AUTH_SOCK": "/private/tmp/com.apple.launchd.c9ekSXCLHb/Listeners",
   "sys.sun.java.command": "org.codehaus.classworlds.Launcher -Didea.version=2017.3.5 jetty:run -P development",
   "sys.maven.multiModuleProjectDirectory": "/Users/guolifei/Documents/codespace/play",
   "env.TMPDIR": "/var/folders/ky/w_hssx9n6gn_0y8mzs6z15t40000gn/T/",
   "sys.java.vm.specification.name": "Java Virtual Machine Specification",
   "sys.java.vendor.url": "http://java.oracle.com/",
   "sys.os.version": "10.13.3",
   "sys.sun.io.unicode.encoding": "UnicodeBig",
   "env.USER": "guolifei",
   "sys.java.vendor": "Oracle Corporation",
   "sys.sun.os.patch.level": "unknown"
}
 |   |       +> org.nutz.mvc.Setup=cn.play.common.core.Setup@299a43d9
 |   |       +> org.apache.tomcat.InstanceManager=org.apache.tomcat.SimpleInstanceManager@ccd000e
 |   |       +> org.apache.jasper.compiler.TldCache=org.apache.jasper.compiler.TldCache@5fa5c8cf
 |   |       +> __nutz__mvc__ctx={
}
 |   += org.eclipse.jetty.server.handler.DefaultHandler@49e0b123 - STARTED
 |   += org.eclipse.jetty.server.handler.RequestLogHandler@2e85e3f1 - STARTED
 |       += org.eclipse.jetty.server.NCSARequestLog@d7055be - STARTED
 +- {file:/Users/guolifei/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar=org.eclipse.jetty.util.resource.EmptyResource@678a9516, file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar=org.eclipse.jetty.util.resource.EmptyResource@678a9516}
 +- {file:/Users/guolifei/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar=org.eclipse.jetty.util.resource.EmptyResource@678a9516, file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar=org.eclipse.jetty.util.resource.EmptyResource@678a9516}
 +- {file:/Users/guolifei/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar=[], file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar=[jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/fn.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/c-1_1.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/sql-1_0-rt.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/fmt-1_0-rt.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/sql.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/c.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/x-1_0-rt.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/fmt.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/x.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/scriptfree.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/c-1_0-rt.tld, jar:file:/Users/guolifei/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar!/META-INF/permittedTaglibs.tld]}
 += org.eclipse.jetty.server.session.HashSessionIdManager@793d09e - STARTED
 |
 +> ClassRealm[plugin>org.eclipse.jetty:jetty-maven-plugin:9.2.17.v20160517, parent: sun.misc.Launcher$AppClassLoader@18b4aac2]

[INFO] Starting scanner at interval of 5 seconds.
2018-03-23 10:20:50,517 org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:76) DEBUG - psubscribe LCache:*
2018-03-23 10:20:50,517 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) DEBUG - Get 'jedisPool'<class redis.clients.util.Pool>
2018-03-23 10:20:50,517 org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:82) DEBUG - psubscribe fail, retry after 3 seconds
java.lang.ClassCastException: redis.clients.jedis.JedisCluster cannot be cast to redis.clients.util.Pool
	at org.nutz.integration.jedis.JedisAgent.getJedisPool(JedisAgent.java:60)
	at org.nutz.integration.jedis.JedisAgent.jedis(JedisAgent.java:49)
	at org.nutz.plugins.cache.impl.lcache.LCacheManager.jedis(LCacheManager.java:51)
	at org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:77)
	at java.lang.Thread.run(Thread.java:748)
2018-03-23 10:20:51,522 org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:76) DEBUG - psubscribe LCache:*
2018-03-23 10:20:51,522 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) DEBUG - Get 'jedisPool'<class redis.clients.util.Pool>
2018-03-23 10:20:51,522 org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:82) DEBUG - psubscribe fail, retry after 3 seconds
java.lang.ClassCastException: redis.clients.jedis.JedisCluster cannot be cast to redis.clients.util.Pool
	at org.nutz.integration.jedis.JedisAgent.getJedisPool(JedisAgent.java:60)
	at org.nutz.integration.jedis.JedisAgent.jedis(JedisAgent.java:49)
	at org.nutz.plugins.cache.impl.lcache.LCacheManager.jedis(LCacheManager.java:51)
	at org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:77)
	at java.lang.Thread.run(Thread.java:748)
2018-03-23 10:20:52,526 org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:76) DEBUG - psubscribe LCache:*
2018-03-23 10:20:52,526 org.nutz.ioc.impl.NutIoc.get(NutIoc.java:151) DEBUG - Get 'jedisPool'<class redis.clients.util.Pool>
2018-03-23 10:20:52,526 org.nutz.plugins.cache.impl.lcache.LCacheManager.run(LCacheManager.java:82) DEBUG - psubscribe fail, retry after 3 seconds
j

Caused by: org.nutz.ioc.ObjectLoadException: Object 'jedisAgent' without define!

你写了redis.js吗? 贴来看看

没有写呢,我看文档说不用写

那就是@IocBy里面写了 *jedis了,对吧? 插件是什么版本的??

不好意思,折腾你们半天了,原来是我在iocby忘记加jedis了。感谢感谢

在帮我看下,然后我在老的项目中这样改造,你们看用法对不

@IocBean(args = {"refer:dao"})
public class WxConfigService extends Service<Wx_config> {

    @Inject
    private JedisAgent jedisAgent;

    public WxConfigService(Dao dao) {
        super(dao);
    }


    /**
     * 自己实现 新增永久图文素材:https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=ACCESS_TOKEN
     * token获取通过redis
     * @param wxid
     * @return
     */
    public WxApi3 getWxApi3(String wxid) {
        Wx_config appInfo = this.fetch(Cnd.where("id", "=", wxid));
        WxApi3 wxApi3 = new WxApi3();
        wxApi3.setAppid(appInfo.getAppid());
        wxApi3.setAppsecret(appInfo.getAppsecret());
        wxApi3.setEncodingAesKey(appInfo.getEncodingAESKey());
        wxApi3.setToken(appInfo.getToken());
        wxApi3.setAccessTokenStore(new WxRedisAccessTokenStore(wxid, jedisAgent.getResource()));
        return wxApi3;
    }

    public WxApi2 getWxApi2(String wxid) {
       Wx_config appInfo = this.fetch(Cnd.where("id", "=", wxid));
        WxApi2Impl wxApi2 = new WxApi2Impl();
        wxApi2.setAppid(appInfo.getAppid());
        wxApi2.setAppsecret(appInfo.getAppsecret());
        wxApi2.setEncodingAesKey(appInfo.getEncodingAESKey());
        wxApi2.setToken(appInfo.getToken());
        return wxApi2;
    }
}

public class WxRedisAccessTokenStore implements WxAccessTokenStore {
    private final static Log log = Logs.get();

    Jedis jedis;
    String wxid;

    public WxRedisAccessTokenStore(String wxid, Jedis jedis) {
        this.wxid = wxid;
        this.jedis = jedis;
    }

    @Override
    public WxAccessToken get() {
        int expires = jedis.ttl(redisTokenKey()).intValue();
        String value = jedis.get(redisTokenKey());
        if (value == null)
            return null;

        WxAccessToken wxAccessToken = Json.fromJson(WxAccessToken.class, value);
        wxAccessToken.setExpires(expires);
        return wxAccessToken;
    }

    private String redisTokenKey() {
        return Constant.CACHE_TOKEN_PREFIX + wxid;
    }

    @Override
    public void save(String token, int expires, long lastCacheTimeMillis) {
        WxAccessToken wxAccessToken = new WxAccessToken();
        wxAccessToken.setLastCacheTimeMillis(lastCacheTimeMillis);
        wxAccessToken.setExpires(expires);
        wxAccessToken.setToken(token);
        String json = Json.toJson(wxAccessToken);
        log.debug("增加缓存key:" + redisTokenKey() + ",value:" + json);
        jedis.setex(redisTokenKey(), expires, json);
    }
}

额,能跑就好的吧。。。

兽总,在帮忙看下,我一个tomcat不熟了两个项目每一个是nutzwk,一个是nutz-book,就是论坛,刚才我把nutzwk,发布,就开始有几个异常,但是项目功能没受到影响,看错误是nutzbook爆出来了,怎么会影响nutzbook呢,以前没这个异常

2018-03-23 11:20:32,873 org.nutz.plugins.cache.serializer.DefaultJdkSerializer.toObject(DefaultJdkSerializer.java:38) INFO  - bytes to Object fail
java.lang.ClassNotFoundException: net.wendal.nutzbook.core.bean.User
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1332)
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1166)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:628)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1521)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1781)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
	at java.util.HashMap.readObject(HashMap.java:1404)
	at sun.reflect.GeneratedMethodAccessor36.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1058)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1909)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1808)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
	at org.apache.shiro.session.mgt.SimpleSession.readObject(SimpleSession.java:500)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1058)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1909)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1808)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
	at java.io.ObjectInputStream.readUnshared(ObjectInputStream.java:463)
	at org.nutz.plugins.cache.serializer.DefaultJdkSerializer.toObject(DefaultJdkSerializer.java:34)
	at org.nutz.plugins.cache.impl.redis.RedisCache2.get(RedisCache2.java:37)
	at org.nutz.plugins.cache.impl.lcache.LCache.get(LCache.java:34)
	at org.apache.shiro.session.mgt.eis.CachingSessionDAO.getCachedSession(CachingSessionDAO.java:217)
	at org.apache.shiro.session.mgt.eis.CachingSessionDAO.getCachedSession(CachingSessionDAO.java:202)
	at org.apache.shiro.session.mgt.eis.CachingSessionDAO.readSession(CachingSessionDAO.java:259)
	at org.apache.shiro.session.mgt.DefaultSessionManager.retrieveSessionFromDataSource(DefaultSessionManager.java:236)
	at org.apache.shiro.session.mgt.DefaultSessionManager.retrieveSession(DefaultSessionManager.java:222)
	at org.apache.shiro.session.mgt.AbstractValidatingSessionManager.doGetSession(AbstractValidatingSessionManager.java:118)
	at org.apache.shiro.session.mgt.AbstractNativeSessionManager.lookupSession(AbstractNativeSessionManager.java:148)
	at org.apache.shiro.session.mgt.AbstractNativeSessionManager.getSession(AbstractNativeSessionManager.java:140)
	at org.apache.shiro.mgt.SessionsSecurityManager.getSession(SessionsSecurityManager.java:156)
	at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSession(DefaultSecurityManager.java:456)
	at org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(DefaultSecurityManager.java:442)
	at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(DefaultSecurityManager.java:338)
	at org.apache.shiro.subject.Subject$Builder.buildSubject(Subject.java:846)
	at org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubject(WebSubject.java:148)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.createSubject(AbstractShiroFilter.java:292)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:359)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)
2018-03-23 11:20:33,217 org.nutz.plugins.cache.serializer.DefaultJdkSerializer.toObject(DefaultJdkSerializer.java:38) INFO  - bytes to Object fail
java.lang.ClassNotFoundException: net.wendal.nutzbook.core.bean.User
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1332)
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1166)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:628)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1521)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1781)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
	at java.util.HashMap.readObject(HashMap.java:1404)
	at sun.reflect.GeneratedMethodAccessor36.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1058)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1909)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1808)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
	at org.apache.shiro.session.mgt.SimpleSession.readObject(SimpleSession.java:500)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1058)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1909)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1808)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
	at java.io.ObjectInputStream.readUnshared(ObjectInputStream.java:463)
	at org.nutz.plugins.cache.serializer.DefaultJdkSerializer.toObject(DefaultJdkSerializer.java:34)
	at org.nutz.plugins.cache.impl.redis.RedisCache2.get(RedisCache2.java:37)
	at org.nutz.plugins.cache.impl.lcache.LCache.get(LCache.java:34)
	at org.apache.shiro.session.mgt.eis.CachingSessionDAO.getCachedSession(CachingSessionDAO.java:217)
	at org.apache.shiro.session.mgt.eis.CachingSessionDAO.getCachedSession(CachingSessionDAO.java:202)
	at org.apache.shiro.session.mgt.eis.CachingSessionDAO.readSession(CachingSessionDAO.java:259)
	at org.apache.shiro.session.mgt.DefaultSessionManager.retrieveSessionFromDataSource(DefaultSessionManager.java:236)
	at org.apache.shiro.session.mgt.DefaultSessionManager.retrieveSession(DefaultSessionManager.java:222)
	at org.apache.shiro.session.mgt.AbstractValidatingSessionManager.doGetSession(AbstractValidatingSessionManager.java:118)
	at org.apache.shiro.session.mgt.AbstractNativeSessionManager.lookupSession(AbstractNativeSessionManager.java:148)
	at org.apache.shiro.session.mgt.AbstractNativeSessionManager.getSession(AbstractNativeSessionManager.java:140)
	at org.apache.shiro.mgt.SessionsSecurityManager.getSession(SessionsSecurityManager.java:156)
	at org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSession(DefaultSecurityManager.java:456)
	at org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(DefaultSecurityManager.java:442)
	at org.apache.shiro.mgt.DefaultSecurityManager.createSubject(DefaultSecurityManager.java:338)
	at org.apache.shiro.subject.Subject$Builder.buildSubject(Subject.java:846)
	at org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubject(WebSubject.java:148)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.createSubject(AbstractShiroFilter.java:292)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:359)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
添加回复
请先登陆
回到顶部