XMPP学习笔记-LESSON-002:ServerStarter.java

烈酒焚心 提交于 2019-12-01 13:21:18

这个类非常简单,定义了2个变量:
DEFAULT_LIB_DIR                    默认的系统包路径,值../lib,可以看出这里的root是$openfireHome/bin,那么../lib,就是$openfireHome/lib目录,这里存放着用到的jar,或者jar.pack(pack?啥东西,一会再说)

DEFAULT_ADMIN_LIB_DIR        这是默认的插件,即后台管理,他是一个webapp程序,jsp的,web服务器使用jetty,关于插件,以后会详细介绍

ok,到此,我们来看,openfire如何启动。

main方法只有一句代码: new ServerStarter().start();

读代码无聊么,其实挺有乐趣,代码是最好的学习资料,个人认为,:).

看start().
String libDirString = System.getProperty("openfire.lib.dir");
这个干吗呢?就是代替上面的DEFAULT_LIB_DIR ,意思如果你指定(或配置)了这个值,那么就以这个变量的值为准。

同理还有, System.getProperty("openfireHome");
这个指定openfire的主目录位置。

下一步,就是读取lib以及插件的打包文件,解压pack,关注unpackArchives方法。

最后,通过ClassLoader,载入到环境变量里。

最关键的地方来,通过java反射,实例化org.jivesoftware.openfire.XMPPServer,这个才是xmppserver的核心类

通过xmppserver,在构造函数中start 服务器。

预知如何启动,请看下节。


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!