以下为自己遇到的一些问题及解决办法。
初衷
朋友告知我的一个网上的这样一个商业项目,觉得挺有意思,决定自己也去实现一下。
遇到的问题
1.最大的问题?
因为这是自己第一次自己用SSM框架去做项目,本身没什么经验,所以心里也没什么底,只能硬着头皮去做。
2.首先是核心功能的实现?
自己上网查阅了很多资料,发现前人做这个或类似的(比如微信机器人)的挺多的,但是很多人的都是部分接口可以用,而且文档不够详细,后来从朋友跟前得知,可以通过微软的Edge这歌浏览器去抓包,于是还是比较轻松地算是完成了发送消息的功能。大概用了2天时间。
3.接着是项目配置?
自己查阅了很多有关SSM整合的资料,最后得到了一个适合自己的解决办法。首先配置maven依赖,然后配置web.xml,然后配置spring配置文件,mybatis配置文件,log4j的配置。
4.前端页面?
这次依然是网上找的模板,自己进行修改。
5.SSL异常?
因为微信的网页都是ssl加密的,发现普通的Get和Post请求都会失败,
必须去设置一下,过程我已经记录在博客里。
6.数据库的设计?
因为这次必须是自己去设计数据库了,我的办法是,自己先去设计一下,把自己想到的都先写上,然后写项目时候,发现遗漏的再补上,这次的表也不多,就三个表。
7.页面权限的处理?
比如主页等等,必须登录以后才能进入,我自己是设置了一个拦截器,如果cookies存在用户名和密码,并且正确,才可以进入,否则会被重定向到login,如果是已登录状态,进入login则跳入index页面,当时自己设置了两个拦截器,互相拦截,导致页面一直崩溃之类的,一下午时间才解决了这个问题。
8.微信群发对象的问题?
因为微信群发可以选择,男,女,群聊,那么我们就得通过用户的设定去发送给相应的人群,解决办法,将用户的选择用url拼接的方式,传入restful风格的网页中,包括1代表发送给男性,包括2代表发送给女性,
包括3代表发送给群聊。
9.乱码问题?
这个问题也是困扰了好几天,因为我在类方法测试的时候可以用,凡是进入网页就不行,当时问了很多老师也不清楚怎么回事,我自己也百度了很久,后来有一次,我查到了关于编码的问题,得到一个解决办法,就是先对原来的字符串进行解码,然后设置为想要的编码即可,这个问题得到了解决。静态资源找不到?
采用RESTful架构后,需要将web.xml中控制器拦截的请求设置为/,这样会将css,js等静态资源进行拦截,发送404错误。
解决方法:配置<mvc:resources/>
<!--自动注册-->
<mvc:annotation-driven/>
<!--加载静态资源-->
<mvc:resources mapping="/js/**" location="/WEB-INF/common/js/" />
<mvc:resources mapping="/images/**" location="/WEB-INF/common/images/" />
<mvc:resources mapping="/css/**" location="/WEB-INF/common/css/" />
github地址
https://github.com/wec246810/wx_bot