2017-08-16 15:46

看一下控制台输出的 jfinal action report 中的 parameter 这一栏,如果数据没有传过来,自然也就接收不到了

然后通过在浏览器中按一下 F12,再发起请求,就能知道请求根本没发送出去

2017-08-16 15:43

当然不是,你可以通过 activeRecordPlugin.setCache(...) 来改变缓存实现类

2017-08-15 18:41

单步调试看是哪一个环节出的乱码,这个问题没有别的办法,只能是找到根源

2017-08-15 18:40

@Bay_Max 可以用 Tx 拦截器,但你要确保拦截器可以被触发,触发方式看一下 jfinal 手册,我个人喜欢用 Db.tx(...)

2017-08-15 17:48

@素夜儿 access token 在每次获取以后,都会判断是否有效/是否过期,如果无效就会重新利用 AccessTokenApi 去请求并更新缓存中的 access token

jsapi_ticket 这部分是后来 @如梦技术 大神开发的,里面的细节我不了解,估计与 access token 是一样的,建议看看相关源代码,或者与 @如梦技术 交流一下

2017-08-15 16:48

对多 tomcat 一个一个更新,不需要停服, nginx 会自动将请求转发到正在服务的 tomcat

写一个脚本将这些事情自动化。如果想玩得更深入点,可以引入一些专业化的工具,例如 jenkins

2017-08-15 16:47

生产环境用 nginx + 多 tomcat,然后用 git 或 svn 更新代码,用 maven 编译,启动 tomcat 就可以了

2017-08-15 16:25

注意上面的 isOldProjectNeedProcess(String) 是你应该要去实现的一个方法,根据 target 参数判断是不是老项目该处理的请求url,target 这个参数你可以认为就是url

2017-08-15 16:24

在 web.xml 中添加 JFinalFilter 就整合完成了,唯一要注意的是 JFinalFilter 与 web.xml 已有的 Filter 拦截的次序问题,如果 SSH 的 Filter 配置在前面,会先拦截请求,如果没有将请求放行的话, jfinal 就收不到请求

建议将 JFinalFilter 配置在 SSH 用的 Filter 之前。 然后为 jfinal 添加一个 handler,放行一些应该老项目处理的 url,大致这样的 handler 代码:
if (isOldProjectNeedProcess(target)) {
return ;
}
next.handled(target, request, response, isHandled);

2017-08-15 16:21

@高达1234 在本站首页右侧可以下载到 Enjoy 3.2 手册,内容很少,一会就看完了。表达式规则与 java 保持一致,所以学习成本很低

2017-08-15 16:17

是从获取的时间点计算时间,这里不会有问题的

2017-08-15 16:14

@Bay_Max 使用 Db.tx(...) 做事务就可以了,看一下 jfinal 手册

2017-08-15 16:13

我自己在项目中是下面这种解决方案:
try {
PropKit.use("config-product.txt");
} catch (Exception e) {
PropKit.use("config-dev.txt");
}

也就是说,优先加载生产环境配置,如果生产环境配置不存在则加载开发环境配置,我在本地开发环境中没有提供 config-produect.txt,所以始终是加载 config-dev.txt

而部署在生产环境时,会创建一个 config-product.txt 用于生产环境,原有的 config-dev.txt 被直接忽略

2017-08-15 16:09

在 YourJFinalConfig extends JFinalConfig 中添加一个方法解决一下,大致如下:
private void loadConfig() {
// 加载用于指定开发模式的配置文件
PropKit.use("application.properties");
// 读取 dev 模式
boolean dev = PropKit.getToBoolean("dev");
// 移除默认的配置文件,第一个被 use 的文件会成为默认配置文件
PropKit.useless("application.properties");
if (dev) {
PropKit.use("application-dev.properties");
} else {
PropKit.use("application-prod.properties");
}
}

然后在 configConsant(Constants me) 方法的第一行处调用一次即可,如果希望更简单,最的的四行代码可以这样:
PropKit.use(dev ? "application-dev.properties" : "application-prod.properties");

在 jfinal 之下,大概是 5 行代码可满足这个需求,但同时又不限定你的配置文件名称,少了一些约定,学习成本低

2017-08-15 11:17

标准的 maven 项目不需要改这个 default output folder,改了以后反而会出问题,把这个值改成下面的形式:
PROJECT_NAME/target/classes

前面的 PROJECT_NAME 是指你的项目实际名称,可以下载本站首页的 jfinal demo for maven 这个项目,导入到 eclipse 的时候选择 import maven project,导入以后直接就可以使用了

导入后查看项目属性,其中的 default output folder 为: jfinal_demo_for_maven/target/classes