一、源码部署的问题
这两天开始捣鼓openfire,使用源代码部署真是天坑,环境配置各种不对,还缺少jar包。部署的博客已经很多了,我就不再重复了,重点提两点吧。
①缺少jar包。实际上只缺少了coherence.jar、coherence-work.jar、tangosol.jar三个jar包,添加后还会提示缺少jar包,这些jar都可以在./lib/目录下找到的(比如mini-integration-jmx,jar、jetty-jmx.jar等);
②代码中的错误。slip/src/java包中会两个错误,一个需要添加实现一个虚函数,另一个捕捉一下异常就OK了。
二、乱码解决方案
openfire的乱码分为了两个部分,1.是设置界面和控制台界面的乱码;2.数据库的乱码。
1.界面乱码
将代码运行起来后,选择中文,会出现如下图的乱码。
导致这个问题的原因是开发人员没有及时的更新中文配置文件openfire_i18n_zh_CN.properties,从3.2.0以后开发人员只更新了部分文件。所以需要我们自己去更新,找到./resources/il8n/openfire_i18n_zh_CN.properties和src/il8n/openfire_i18n_zh_CN.properties两个文件,添加下面的键值对可以使设置界面无乱码。
server.properties.encryption=\u5c5e\u6027\u52a0\u5bc6
server.properties.encrypted=\u5c5e\u6027\u52a0\u5bc6\u6210\u529f.
server.properties.encrypt=\u52a0\u5bc6
server.properties.alt_encrypt=\u70b9\u51fb\u5bf9\u8be5\u5c5e\u6027\u52a0\u5bc6
server.properties.alt_encrypted=\u5c5e\u6027\u5df2\u52a0\u5bc6
server.properties.encrypt_property_true=\u52a0\u5bc6\u6b64\u5c5e\u6027\u7684\u503c
server.properties.encrypt_property_false=\u4e0d\u52a0\u5bc6\u6b64\u5c5e\u6027\u7684\u503c
server.properties.delete_confirm=\u60a8\u786e\u5b9a\u8981\u5220\u9664\u6b64\u5c5e\u6027?
server.properties.encrypt_confirm=\u4f60\u786e\u5b9a\u4f60\u60f3\u52a0\u5bc6\u6b64\u5c5e\u6027?
setup.host.settings.encryption_algorithm=\u5c5e\u6027\u52a0\u5bc6\u65b9\u6cd5:
setup.host.settings.encryption_algorithm_info=\u9009\u62e9\u4e00\u4e2a\u52a0\u5bc6\u5f15\u64ce\u6216\u7b97\u6cd5\u7528\u4e8e\u52a0\u5bc6\u5c5e\u6027.
setup.host.settings.encryption_aes=AES
setup.host.settings.encryption_blowfish=Blowfish
setup.host.settings.encryption_key=\u5c5e\u6027\u52a0\u5bc6\u5bc6\u94a5:
setup.host.settings.encryption_key_info=\u4e3a\u4e86\u66f4\u52a0\u5b89\u5168\uff0c\u4f60\u53ef\u4ee5\u5b9a\u4e49\u4e00\u4e2a\u81ea\u5b9a\u4e49\u7684\u52a0\u5bc6\u5bc6\u94a5.
setup.host.settings.encryption_key_invalid=\u60a8\u5fc5\u987b\u8f93\u5165\u76f8\u540c\u7684\u52a0\u5bc6\u5bc6\u94a5\u503c\u7684\u4e24\u6b21\u4ee5\u786e\u4fdd\u60a8\u952e\u5165\u662f\u6b63\u786e\u7684.
然后删除work和target目录,重新使用ant编译。
2.数据库乱码
这个问题需要注意两点就可以了。
①在创建数据库是指定UTF-8编码格式,或者直接设置数据库的字符集为utf-8(具体的可以看这里)
②在设置数据库连接时,也需要指定格式
jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&characterEncoding=utf8