本地部署并运行Openfire和错误处理

 一、下载Openfire源码

 

首先,访问http://www.igniterealtime.org/ 点击下载Openfire源码压缩包,进行解压,将解压后的文件放置在硬盘某处。假设我们放在D盘根目录下,然后将文件夹名称修改为openfire_src。

 

一、在Eclipse环境中导入Openfire源代码

 

目前本人发现在Eclipse中导入Openfire源码,会有两种情况,是由于Eclipse版本问题引起的,所以这里我都进行说明。

 

(Eclipse 3.5)操作流程:

File->New->Java Project

在弹出的New Java Project对话框中输入工程名:openfire_src

选择Create project from existing source项,单击Browe,找到之前的解压目录 openfire_src

 

(Eclipse 3.6)操作流程:

File->New->Java Project

取消掉default location的勾选状态,并浏览选择解压好的openfire_src目录。

 

以上两种方式针对不同的Eclipse,但是结果都是一样,将Openfire源码导入到Eclipse中。

 

二、使用ANT进行工程的编译

 

在openfire项目导入进来之后,点击

Window -> Show View -> Ant

然后就会显示出Ant的窗口,在Ant 视图中,单击右键,在弹出的快捷菜单中选择Add Buildfiles

在弹出的对话框中,展开openfire_src/build文件夹,选择build目录下的build.xml

接下来双击执行openfire[default]   (带一个三角符号的那个)

在控制台中显示“BUILD SUCCESSFUL” 那么就表示编译成功,

 

PS:如果编译失败,很可能是由于JDK的原因,那么请设置一下项目的JDK,我用的是1.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选项卡,在上面那个框(Program 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\jar 目录也加到 Classpath选项卡中

点击Apply应用。

 

5.点击进入Common选项卡中,勾选Run复选框。

点击Apply应用。

 

在进行这些配置之后,就算是基本完工了。

可以直接点击配置框最下方的Run按钮,或者单击菜单栏Run->Run开始跑程序。

 

Java代码   收藏代码
  1. log4j:WARN No appenders could be found for logger (org.jivesoftware.util.Log).  
  2. log4j:WARN Please initialize the log4j system properly.  
  3. Openfire 3.7.0 [Jun 292011 1:51:19 PM]  
  4. Admin console listening at <a href="http://127.0.0.1:9090">http://127.0.0.1:9090</a>  

 

启动成功,那么在浏览器中输入http://127.0.0.1:9090测试一下吧!

 

四、错误处理

 

在配置完成后,有些同学启动项目并不会正常启动,而是会出现一些其他错误。

比如说:

Java代码   收藏代码
  1. log4j:WARN No appenders could be found for logger (org.jivesoftware.util.Log).  
  2. log4j:WARN Please initialize the log4j system properly.  
  3. Could not locate home  
  4. java.io.FileNotFoundException  
  5.     at org.jivesoftware.openfire.XMPPServer.locateOpenfire(XMPPServer.java:874)  
  6.     at org.jivesoftware.openfire.XMPPServer.initialize(XMPPServer.java:347)  
  7.     at org.jivesoftware.openfire.XMPPServer.start(XMPPServer.java:468)  
  8.     at org.jivesoftware.openfire.XMPPServer.<init>(XMPPServer.java:212)  
  9.     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)  
  10.     at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)  
  11.     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)  
  12.     at java.lang.reflect.Constructor.newInstance(Unknown Source)  
  13.     at java.lang.Class.newInstance0(Unknown Source)  
  14.     at java.lang.Class.newInstance(Unknown Source)  
  15.     at org.jivesoftware.openfire.starter.ServerStarter.start(ServerStarter.java:113)  
  16.     at org.jivesoftware.openfire.starter.ServerStarter.main(ServerStarter.java:58)  
  17. 启动服务器时出错。请检查日志文件以获取更多信息。  

 

 

这种情况是由于源码中配置的路径错误引起的,请打开文件org.jivesoftware.openfire.XMPPServer

 

我们来看这一行

 

Java代码   收藏代码
  1. // If we still don't have home, let's assume this is standalone  
  2.        // and just look for home in a standard sub-dir location and verify  
  3.        // by looking for the config file  
  4.        if (openfireHome == null) {  
  5.            try {  
  6.                openfireHome = verifyHome("..", jiveConfigName).getCanonicalFile();  
  7.            }  
  8.            catch (FileNotFoundException fe) {  
  9.                // Ignore.  
  10.            }  
  11.            catch (IOException ie) {  
  12.                // Ignore.  
  13.            }  
  14.        }  

 

 

请看verifyHome方法的第一个参数,这里配置的就是相对的路径“..”而我们重新编译的时候,配置到的路径不是这里,那么就要根据你配置的路径来修改前面的地址。

 

我的是这样:

 

Java代码   收藏代码
  1. openfireHome = verifyHome("D:\\openfire_src\\openfire_src\\target\\openfire", jiveConfigName).getCanonicalFile();  

 

我的配置在:openfire_src\\openfire_src\\target\\openfire文件夹下。

 

设置完毕之后,重新启动,就可以正常使用了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值