以前使用的都是jfianl_weixin_1.1版本,在本地調試的時候只須要註釋掉@Before(WeixinInterceptor.class)攔截器就能夠了。ps:(該方法一開始是看@天蓬小豬 的博客http://my.oschina.net/u/257950/blog/347392) 。今天須要開發新的微信項目,發現sdk已經更新到1.2版本了,因而熟練的註釋掉了@Before(MsgInterceptor.class)這一行,而後運行微信開發調試小工具後就報了一個錯誤java
java.lang.IllegalStateException: 須要事先使用 ApiConfigKit.setThreadLocalApiConfig(apiConfig) 將 ApiConfig對象存入,才能夠調用 ApiConfigKit.getApiConfig() 方法
查看了一下changelog發現jfinal_weixin_1.2的一些小改動——支持多公衆號。因此須要動態的配置ApiConfig,查看MsgInterceptor.class的源碼發現了這樣一句代碼api
// 將 ApiConfig 對象與當前線程綁定,以便在後續操做中方便獲取該對象: ApiConfigKit.getApiConfig(); ApiConfigKit.setThreadLocalApiConfig(((MsgController)controller).getApiConfig());
因而明白了問題所在:只須要在MsgController.java的index()方法中加上微信
ApiConfigKit.setThreadLocalApiConfig(getApiConfig());//nie:本地測試調試加上的,須要刪除
其餘代碼同理。微信開發
這些改動僅僅是用於本地測試使用,不建議真正修改官方源碼,建議在在線調試時直接用官方提供了jar包覆蓋本地的jar包便可。
工具