新建 Eclipse 項(xiàng)目
新建 Dynamic Web Project
項(xiàng)目名: jfinal-weixin-nancarp
服務(wù)器: Tomcat v8.0

導(dǎo)入 jar 包
項(xiàng)目必需以下 jar 包,或者更高版本
// jfinal 核心包
--jfinal-2.2.jar
// jfinal 微信開(kāi)發(fā) jar 包
--jfinal-weixin-1.8-bin-with-src.jar
// 可選Json處理包,必選其一
--fastjson-1.2.6.jar
//或者
--jackson-databind-2.4.3.jar
----jackson-annotations-2.4.0.jar
----jackson-core-2.4.3.jar
所需 jar 包可以在 JFinal 社區(qū)下載:http://www.jfinal.com/
搭建 JFinal 框架
項(xiàng)目結(jié)構(gòu) :

WeixinConfig.java:
package com.nancarp.config;
import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.jfinal.kit.PropKit;
import com.jfinal.template.Engine;
import com.nancarp.controller.HelloWorldController;
public class WeixinConfig extends JFinalConfig{
@Override
public void configConstant(Constants me) {
// 加載配置文件
PropKit.use("a_little_config.txt");
// 讀取配置文件,判斷是否為開(kāi)發(fā)模式,默認(rèn) false
me.setDevMode(PropKit.getBoolean("devMode", false));
}
@Override
public void configRoute(Routes me) {
// HelloWorld 路由
me.add("/hello",HelloWorldController.class);
}
@Override
public void configEngine(Engine me) {
}
@Override
public void configPlugin(Plugins me) {
}
@Override
public void configInterceptor(Interceptors me) {
}
@Override
public void configHandler(Handlers me) {
}
}
HelloWorldController.java:
package com.nancarp.controller;
import com.jfinal.core.Controller;
public class HelloWorldController extends Controller {
public void index() {
renderText("Hello World!");
}
}
a_little_config.txt:
# 數(shù)據(jù)庫(kù)相關(guān)設(shè)置
jdbcUrl=jdbc:mysql://localhost/__數(shù)據(jù)庫(kù)名__?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
user=_數(shù)據(jù)庫(kù)賬號(hào)_
password=_數(shù)據(jù)庫(kù)密碼_
# 開(kāi)發(fā)模式
devMode = true
# 微信服務(wù)器回調(diào)所用的 token
token=weixin
# 測(cè)試用的賬號(hào)
appId=wxde758064398fa9bf
appSecret=89622f356fc2bca96ec647d55929afa5
#webAppId=___web appid___
#webAppSecret=_________web appSecret____
#是否對(duì)消息進(jìn)行加密,是否對(duì)消息進(jìn)行加密,對(duì)應(yīng)于微信平臺(tái)的消息加解密方式,false支持明文模式及兼容模式,true支持安全模式及兼容模式
encryptMessage=false
encodingAesKey=5C8csBd4cG4c9039OKDnNaZmYlkAzXV31piXQFRZKHC
#####業(yè)務(wù)邏輯中的華麗的分割線#########
#授權(quán)域名
domain=http://********.com
subscribe_rul=http://mp.weixin.qq.com/s?__biz=MzA4MDA2OTA0Mg==&mid=208184833&idx=1&sn=d9e615e45902c3c72db6c24b65c4af3e#rd
host=http://*****.com
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<filter>
<filter-name>jfinal</filter-name>
<filter-class>com.jfinal.core.JFinalFilter</filter-class>
<init-param>
<param-name>configClass</param-name>
<param-value>com.nancarp.config.WeixinConfig</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jfinal</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
項(xiàng)目部署到 Tomcat 上

修改 server.xml 文件
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
// 修改端口號(hào)為 80 ,因?yàn)槲⑿胖恢С?80 或 443 端口
<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443"/>
<Context docBase="jfinal-weixin-nancarp" path="/jfinal-weixin-nancarp" reloadable="true" source="org.eclipse.jst.jee.server:jfinal-weixin-nancarp"/>
// path 修改為"/",這樣 url 就不需要帶上項(xiàng)目名
<Context docBase="jfinal-weixin-nancarp" path="/" reloadable="true" source="org.eclipse.jst.jee.server:jfinal-weixin-nancarp"/>
運(yùn)行項(xiàng)目
啟動(dòng) tomcat,在瀏覽器輸入 localhost/hello,回車(chē)。
看到熟悉的 "Hello World" 就說(shuō)明框架搭建成功。
源碼地址
JFinal Weixin 學(xué)習(xí)筆記(4)-- 實(shí)現(xiàn)微信信息交互
JFinal Weixin 學(xué)習(xí)筆記(1)-- 目錄