文档章节

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

今幕明
 今幕明
发布于 2014/01/23 12:18
字数 321
阅读 270
收藏 4

这个类非常简单,定义了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 服务器。

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


© 著作权归作者所有

共有 人打赏支持
今幕明
粉丝 46
博文 224
码字总数 39350
作品 0
朝阳
程序员
私信 提问
XMPP协议学习笔记三(Openfire服务器端搭建开发环境)

在了解了XMPP的基本结构和一些概念之后,我们暂时告别枯燥的理论学习,来动手搭建一下Openfire+Spark的开发环境,实际感受一下搭建整套IM通讯系统的过程。 开发环境:windows XP sp3,Eclip...

JayPark不作死
2014/06/24
0
0
openfire 开发环境搭建

在了解了XMPP的基本结构和一些概念之后,我们暂时告别枯燥的理论学习,来动手搭建一下Openfire+Spark的开发环境,实际感受一下搭建整套IM通讯系统的过程。 开发环境:windows XP sp3,Eclip...

phacks
2015/06/15
0
0
XMPP学习笔记-LESSON-001: run on eclipse

之前也一直研究openfire,不过更多的是根据实际情况做些具体修改,以及具体操作,比如用户整合,服务器设置等,闲散的弄了几月,最近考虑系统的学习xmpp。 在学习本章之前,先看了一周的xmp...

今幕明
2014/01/23
0
0
Tigase组件第七节 – 数据库

本文翻译自 – http://www.tigase.org/content/component-implementation-lesson-7-data-repository 在某些情况,你需要通过组件对需要保存的数据进行持久化。当然你可以使用组件配置API向组...

greki
2014/03/20
0
0
XMPP学习笔记-LESSON-003:XMPPServer.java之initialize​

上文讲到,ServerStarter通过java反射机制,实例化org.jivesoftware.openfire.XMPPServer,在xmppserver构造函数中,调用start方法,,开始了服务之旅. 首先,我们来看看start方法中,XMPPServer...

今幕明
2014/01/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

生产者消费者问题(PV操作)

一、明确定义 要理解生产消费者问题,首先应弄清PV操作的含义:PV操作是由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量S的值减...

shzwork
8分钟前
0
0
重新认识网络通信协议

OSI网络分层 应用层 http, smtp,pop3这些都属于应用层协议 为用户的应用程序提供服务 表示层 确保一个系统的应用层发送的信息被另一个系统的应用层接收到 会话层 通过传输层建立数据传输的通...

最胖的瘦子
19分钟前
0
0
【转】分布式数据流的轻量级异步快照

本篇翻译自论文:Lightweight Asynchronous Snapshots for Distributed Dataflows,Flink的容错快照模型即来源于该论文。原文地址:https://arxiv.org/pdf/1506.08603.pdf 分布式数据流的轻量...

yiduwangkai
22分钟前
0
0
java使用反射机制设置私有成员变量的值

写一个方法:public void setProperty(Objectobj, String propertyName, Object value){}, 此方法可将obj对象中名为propertyName的属性的值设置为value。(这里不知道obj对象的propertyNam...

群星纪元
28分钟前
0
0
用 Tapestry 的方式在页面模板中加入注释

<span jwcid="$remove$">这里是注释</span>

LeoXu
28分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部