openfire3.9.3导入eclipse 按步骤来,可以正确导入!

最近在用openfire开发ios通讯功能,需要开发一个推送插件,导入openfire3.9.3的源码一直报错很郁闷,以下是解决源码导入eclipse报错的方法

入正题,看到这篇文章的的网友应该已经安装了jdk,eclipse,我就不在安装这些开发工具上赘述了,附载一下openfire的下载地址:Ignite Realtime: Downloads

1、下载源码openfire_src_3_9_3.zip,目前最新的版本是3.9.3

2、把下载好的openfire_src_3_9_3.zip解压到工作空间,结构和目录如下:


 3、把openfire_src\build\eclipse目录下面的settings、classpath、project全部复制到openfire_src\ 目录下,然后把openfire_src\classpth、openfire_src\project、openfire_src\settings修改成Eclipse工程配置文件格式,重命名为在每个原有的名字上加上一个点,即.classpth、.project、.settings。注意:在windows下面不能直接重命名,需要在dos下面操作,即进入相应的目录执行,rename classpth .classpth即可,其它两个文件执行一样的操作:



 

4、然后打开Eclipse,选择 File –> Import… –> Existing Projects into Workspace  选择F:\workspace\openfire_src 导入即可:



 

 导入后目录结构如下:



 大家会发现自己这个项目上出现了一个感叹号,进入构建路径,会发现:


 

这说明这个jar包缺失了,将bouncycastle.jar 加入工程就好了,

移除后出现三个错误,没关系,我们一步步修复错误,\openfire_src\src\java报错,是因为有jar包,没有引进来,我们将其引进即可:


 

注意:一次只能引用一个,所以需要操作四次,才行。点击OK以后,我们发现\openfire_src\src\java上的错误已经没有了。\openfire_src\src\plugins\clustering\src\java报错,是因为缺少coherence.jar,coherence-work.jar,tangosol.jar这三个jar包,我们将复制到\openfire_src\src\plugins\clustering\lib目录下,然后将这三个jar包,加入构建路径:



 这时我们发现\openfire_src\src\plugins\clustering\src\java上的错误已经消失了,需要的包我会上传到附件

最后一个在\openfire_src\src\plugins\sip\src\java上的报错是因为 SipCommRouter.java和SipManager.java 这两个类没有实现抽象方法和完成异常处理,最简单的解决办法是利用Eclipse自动修复功能进行修复即可。现在我们发现我们的项目已经没有任何错误了。

接下面可以编译运行openfire,当然也可以下载相应系统的安装文件安装

5、ANT编译项目

Eclipse已经集成了Ant,所以我们只需要在 /openfire_src/build/build.xml 文件右击,选择Run As –> Ant Build 即可完成编译,编程成功后,会在/openfire_src/的跟目录下生成两个新的文件夹:target 和 work 。

6、运行Openfire项目

①、在Build Path配置中把  /openfire_src/src/i18n 、/openfire_src/src/resources/jar 、/openfire_src/build/lib/dist 文件夹添加到 Source 中,如图:



 ②配置启动参数

选择Run –> Run Configurations… 左边的Java Application,单击右键,选择 New:



 把默认name:New_configuration 修改成:ServerStarter。

选中Main选项卡,点击Browse按钮选择 openfire_src 项目;单击Search 按钮输入:ServerStarter 自动过滤后选择:ServerStarter – org.jivesoftware.openfire.starter:



 选中Arguments选项卡,在VM arguments中填入:

-DopenfireHome="${workspace_loc:openfire_src}/target/openfire"

注意:项目路径 ${workspace_loc:openfire_src}

选中Common选项卡,将Debug和Run打钩(方便之后快速启动),然后点击apply,再点击run:


 

④浏览器中输入地址: http://127.0.0.1:9090 回车:


解决完错误就可以进行插件开发了。 

转载自:http://blog.csdn.net/lovexieyuan520/article/details/37743433

#######################################################################################

实际操作报错1:java.lang.NoClassDefFoundError: DopenfireHome

解决办法:

Arguments  ->  VM arguments 输入框内输入 
-DopenfireHome="${workspace_loc:项目名称}/target/openfire" 
"-"这个横杠不能少 

接下来报错2:

Could not locate home
java.io.FileNotFoundException

解决办法:

  1. 在XMPPServer类中有一个locateOpenfire方法,这个方法就是设置openfireHome属性。  
  2. 1部分的代码如下:  
  3. String jiveConfigName = "conf" + File.separator + "openfire.xml";  
  4. // First, try to load it openfireHome as a system property.  
  5. if (openfireHome == null) {  
  6. String homeProperty = System.getProperty("openfireHome");  
  7. try {  
  8. if (homeProperty != null) {  
  9. openfireHome = verifyHome(homeProperty, jiveConfigName);  
  10. }  
  11. }  
  12. catch (FileNotFoundException fe) {  
  13. // Ignore.  
  14. }  
  15. }  
  16. 是在环境变量设置了Openfire的Home的情况下寻找openfire.xml文件  
  17.   
  18. 你可以更改第二部分的代码让Openfire找到Home:  
  19. // If we still don't have home, let's assume this is standalone  
  20. // and just look for home in a standard sub-dir location and verify  
  21. // by looking for the config file  
  22. if (openfireHome == null) {  
  23. try {  
  24. //修改的是下面的代码,将".."替换为其他路径了  
  25. openfireHome=verifyHome("C:\\Program Files\\Openfire", jiveConfigName).getCanonicalFile();  
  26. }  
  27. catch (FileNotFoundException fe) {  
  28. // Ignore.  
  29. }  
  30. catch (IOException ie) {  
  31. // Ignore.  
  32. }  
  33. }  
  34. 这部分默认是找当前文件路径,你可以修改它为你安装openfire的路径,这样问题就可以解决了。

报错3:org.jivesoftware.admin.AdminConsole.getAppName(AdminConsole.java:137)

解决办法:

这时因为是文件路径所导致的问题,需要将admin-sidebar.xml和openfire_i18n_en.properties这2个文件直接放在openfire\bin目录下即可解决这个问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值