Skip to content
LauItachi edited this page Aug 2, 2019 · 6 revisions

Well, here was the most tiring things in this project that I collected into the FAQ. (Or 花Q?)

1. 微信大坑

1.1 框架集成问题

FastBootWeiXin框架初步使用,一开始不知道怎么下手……拿demo和写配置都是在HikariShine的教导下才顺利进行的,微信号配置见 1.2 测试号配置问题

集成FastBootWeiXin的Web应用可单独使用SpringMVC注释写自己的Controller,不使用到WxController就不会影响到微信端的控制器,避免使用/wx和后面的OAuth2.0网页授权冲突就行

1.2 测试号配置问题

一开始完全不知道怎么入手,求HikariShine手把手教的配置……现在整理了配置教程,把测试号管理页面和Web项目.properties配置文件对应好就可以

1.3 认证问题

不认证不能通过接口配置微信菜单

不认证不认可外链安全性(易出现不给用POST请求等大坑)

不认证不显示通过手机端微信打开的微信页面input元素

淦!平均一个问题耗两天人生……

1.3 订阅号配置

其实在配测试号之前就已经弄了订阅号了,但是没认证,很多功能都用不了。一个建议:认证不下来的话就请另选方案吧,别死磕在这里。

1.4 安全性验证问题

POST请求会被微信服务器自动转换成GET请求;不使用域名会有安全性验证

2. 前端大坑

2.1 微信公众平台界面

2.2 微信页面

2.3 与后端交互

期初使用Form提交表单,实现功能

后期改用Ajax提交表单并接受反馈

3. 后端大坑

3.1 框架集成

3.1.1 SpringSecurity巨坑

3.1.1.1 资源拦截
3.1.1.2 package重构

3.1.2 Dao VS Repository

3.1.3 分页实现

分页实现有多种,在现有多框架集成的状态下考虑最合适的实现,选择了Spring Data JPA的分页功能

3.1.4 SpringBoot学习

一开始零基础的入门学习导致整体框架的不完全,按照教程搭了一半,结果没有处理完全,出现了 3.3 报错被吞 的问题,一度导致项目查重异常艰难。

3.2 实现逻辑重构

学号绑定功能由于不能通过动态修改微信菜单,则只能通过页面重定向完成

3.3 报错被吞

由于一开始学SpringBoot使用了 Spring Boot基础教程 中的全局异常处理类,导致当中把异常给吞了,在整个项目查看日志报错时带来了严重阻碍,到后期才得到处理,耗费了相当多精力才找到源头,详见 issue-[SpelEvaluationException]异常报错

4. 服务器大坑

4.1 安全组配置

4.2 远程连接

4.3 环境搭建

4.4 部署运行

4.5 远程调试

  1. idea→添加运行环境Run/Debug Configuration
  2. 添加Remote
  3. 修改Host、Port为远程服务器中运行的配置
  4. 复制下方的运行参数
  5. OK保存,本地开始debug
  6. 在远程服务器中运行java -jar 后面带上刚刚复制的参数

注意,需开放端口

4.6 域名备案……心态炸裂

5. 故障排除

出现问题了?就得开始查错,查错入手角度刁钻,可能会有很多入口,下面展示本次项目开发过程中用到的一些方法

5.1 学看日志

5.2 代码管理

5.3 学调试

5.4 善用浏览器的开发者工具

5.5 实在不行说不定还得抓包

6. wiki编写

6.1 编写目的

6.1.1 与ReadMe的详略分配

项目的ReadMe进行删减,主要保留一二三级标题,转移内容到wiki进行介绍。

6.1.2 与论文的详略分配

一开始把过多的实践经历放到了论文里,导致毕业论文写了一半,字数就快超20k了……故现论文主要介绍理论和设计部分,实践和实现均通过项目wiki来介绍,尽量做到详略得当。(尤其是FAQ占了较大篇章……

6.2 遇到的坑

6.2.1 跳转问题

这首页跳转和其他页面竟然还是不一样的,打了锚点都没用……

Clone this wiki locally