openfire 3.8.1 源码工程 DIY


 


1.官网下载Openfire源码
http://www.igniterealtime.org/ 

http://www.igniterealtime.org/downloads/source.jsp 


2.在Eclipse环境中导入Openfire源代码
File->New->Java Project
取消掉default location的勾选状态,并浏览选择解压好的openfire_src目录


3. 工程属性
编码改为 utf-8   jdk1.6

“Java Build Path” -> source -> add fold ->“src/resources/jar” 
(因为 运行后 网页访问,会出现问题:admin-sidebar.xml )


4. 添加3个jar包
coherence.jar coherence-work.jar  tangosol.jar


5.使用ANT进行工程的编译
在openfire项目导入进来之后,点击
Window -> Show View -> Ant
然后就会显示出Ant的窗口,在Ant 视图中,单击右键,在弹出的快捷菜单中选择Add Buildfiles
在弹出的对话框中,展开openfire_src/build文件夹,选择build目录下的build.xml
接下来双击执行openfire[default]   (带一个三角符号的那个)
在控制台中显示“BUILD SUCCESSFUL” 那么就表示编译成功,


6. 设置启动项目

点击openfire_src项目,在菜单栏中选择Run->Open Run Dialog (Or  Run->Run Configurations)
弹出一个对话框,在左侧菜单中右键点击Java Application,选择New创建启动配置

(1).在Run窗口的Main选项卡中, 修改最上面Name文本框中的值,改成包含要启动的类的工程名openfire_src
(没什么用,就是一个标识,随便起名字。)

(2).在Run窗口的Main选项卡中,
project框中填写:openfire_src
Main class 填写:org.jivesoftware.openfire.starter.ServerStarter
点击Apply应用。

(3).点击进入Arguments选项卡,在上面那个框(VM arguments:)中填写
-DopenfireHome="${workspace_loc:openfire_src}/target/openfire"
其中${workspace_loc:openfire_src} 中的 openfire_src 要根据你的项目名来进行同步修改。
点击Apply应用。

(4).点击进入Classpath选项卡,选中User Entries,然后点击右侧的Advanced按钮,会弹出一个小框,选择Add Folders,单击OK。
选择 openfire_src\src\i18n点OK 按钮将这个文件夹加入到Classpath选项卡中
选择 openfire_src\src\resources (也可能是 openfire_src\src\resources\jar ) 目录也加到 Classpath选项卡中
点击Apply应用。

(5).点击进入Common选项卡中,勾选Run复选框。
点击Apply应用。

在进行这些配置之后,就算是基本完工了。
可以直接点击配置框最下方的Run按钮,或者单击菜单栏Run->Run开始跑程序。

 

8. 现在 可以访问 http://127.0.0.1:9090 ,进入配置页面      默认  admin   admin


9. 在安装中的配置页面,注意填写  “域为 workgroup”


image thumb 2 Openfire 的安装和配置

如果你是本地访问,那么你可以不修改或是使用localhost、127.0.0.1的方式

如果你用于外网或局域网访问,那么你的地址配置成外网或局域网地址


正式环境就要配置啦:

使用openfire需要配置机器的域名。打开C:\WINDOWS\system32\drivers\etc\hosts文件,增加一新行:127.0.0.1   im.comit.com.cn
      其他机器使用域名访问openfire,也需要在C:\WINDOWS\system32\drivers\etc\hosts中指定im.comit.com.cn对应的ip地址,例如我的局域网IP为192.168.0.177,则hosts文件中应增加一新行:
192.168.0.177 im.comit.com.cn

      DNS2

     

      可以ping一下刚才的域名im.comit.com.cn,验证是否配置正确:

      DNS3




10. 连接数据库

我们先选择的是 mysql ,我用的数据库名为 openfire
连接为:
jdbc:mysql://127.0.0.1:3306/openfire?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true


可能会出现问题:.\openfire\ofroster.frm 不能生成

我们编辑mysql的sql脚本 \src\database\openfire_mysql.sql

CREATE TABLE ofRoster (
  rosterID              BIGINT          NOT NULL,
  username              VARCHAR(64)     NOT NULL,
  jid                   VARCHAR(1024)   NOT NULL,
  sub                   TINYINT         NOT NULL,
  ask                   TINYINT         NOT NULL,
  recv                  TINYINT         NOT NULL,
  nick                  VARCHAR(255),
  PRIMARY KEY (rosterID),
  INDEX ofRoster_unameid_idx (username),
  INDEX ofRoster_jid_idx (jid)
);
修改
CREATE TABLE ofRoster (
  rosterID              BIGINT          NOT NULL,
  username              VARCHAR(64)     NOT NULL,
  jid                   VARCHAR(1024)   NOT NULL,
  sub                   TINYINT         NOT NULL,
  ask                   TINYINT         NOT NULL,
  recv                  TINYINT         NOT NULL,
  nick                  VARCHAR(255),
  PRIMARY KEY (rosterID)
);
ALTER TABLE ofRoster ADD INDEX ofRoster_username_idx(username);

不知道是不是因为我的是mysql5.0原因

然后自己手动去删除数据库中已有表,自己执行整个sql文件。

 

11.工程还有错 
删除多余的
src\plugins\hazelcast\src\java\com\jivesoftware\util 
src\plugins\hazelcast\src\java\com\jivesoftware\openfire\session


 

 
12
运行的配置文件   \openfire_src\target\openfire\conf\openfire.xml

 

 

 

 

前面参考了 http://blog.csdn.net/kingsonl/article/details/7730225

jar包 可以在 我下载页面去下

 

同类部署:

http://www.cnblogs.com/charley_yang/archive/2011/03/27/1997052.html

http://hi.baidu.com/sandy_zjw/item/d3c0766dcedc54116895e695

http://blog.csdn.net/hustpzb/article/details/7644740


官方指导的部署步骤,来自http://community.igniterealtime.org/docs/DOC-1020

 

 



 

运行的配置文件   \openfire_src\target\openfire\conf\openfire.xml
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值