热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在eclipse上部署openfire3.9.1源码,並配置openfire

参考文章:https:my.oschina.netu1409622blog205603 在网上找了很久部署openfire源码的文章,由于我使用的是最新的3.9.1源码,试了很多种

参考文章:https://my.oschina.net/u/1409622/blog/205603

 

在网上找了很久部署openfire源码的文章,由于我使用的是最新的3.9.1源码,试了很多种部署方法,都无法使用。后来看到下面这兩篇文章http://blog.csdn.net/StillCity/article/details/16988317,http://blog.csdn.net/ares1201/article/details/7737872;经测试可以正确使用。

注:此处错误不影响运行的原因是plugin包下的都是插件,个别插件的错误并不影响openfire的运行,对于错误的插件包,删除即可

不过项目还是会有几个错误,但不影响运行,如果有知道解决方法的,麻烦告知我一下。

此文章是以3.8.2为例,经测试,3.9.1也可以正确使用,个别错误并不影响程序运行

1、准备:安装jdk就不用说了把。网上多的是这里就不赘述了。

a.源码下载:【官网】http://www.igniterealtime.org/downloads/source.jsp 选择openfire下载;

b . eclipse开发工具我的是4.2 版本,

2 开始部署:

首先打开eclipse将openfire源码解压到eclipse的workspace 目录下 或者选择新的workspace在eclipse上部署openfire 3.9.1源码,並配置openfire

选择 openfire源码的上级目录(即下图的workspace目录)点击确定(我的是已经拷贝到workspace目录下的) 在eclipse上部署openfire 3.9.1源码,並配置openfire

然后新建一个java项目 项目名与源码文件名必须一样 eclipse会自动加载源码项目在eclipse上部署openfire 3.9.1源码,並配置openfire

然后会得到如图所示的界面 在eclipse上部署openfire 3.9.1源码,並配置openfire

这个地方缺少两个jar包 coherence.jar , tangosol.jar 网上也有说少三个的 另外一个是 coherence-work.jar

这三个jar包的下载地址是 免积分的 免积分才爽快 :http://download.csdn.net/detail/stillcity/6620479

将coherence.jar , tangosol.jar 拷贝到build目录下的lib目录下 或者随便建个其他目录放进去

选中两个jar包 右击添加到buildpath 在eclipse上部署openfire 3.9.1源码,並配置openfire

稍等片刻 eclipse要重建工作空间 完成后发现还有错误 怎么办?

来 这么干。 在eclipse上部署openfire 3.9.1源码,並配置openfire

先看sip包中的错误:

打开两个错误类 后会发现
在eclipse上部署openfire 3.9.1源码,並配置openfire 在eclipse上部署openfire 3.9.1源码,並配置openfire

这两个错误相同都是没有实现所有的抽象方法

鼠标点击一下 Add unimplemented methods 即可 另外SipManager类中还需要捕获一个异常在eclipse上部署openfire 3.9.1源码,並配置openfire

这样就 解决了这个问题

然后还有另一个 报了很多错的问题: 在eclipse上部署openfire 3.9.1源码,並配置openfire 可以看到这两个目录结构相同的资源包 大家把上面红框的删掉就可以了,下面就不报红了。

此处需注意,由于本人是使用3.9.1的源码,依照上述方法调试后,还会有错误,如下 在eclipse上部署openfire 3.9.1源码,並配置openfire

不过此处错误并不会影响项目运行,继续下面的步骤。

第三步:选择菜单栏 window->Show View ->Ant在eclipse上部署openfire 3.9.1源码,並配置openfire 在eclipse上部署openfire 3.9.1源码,並配置openfire

点开右击Openfire XMPP Server 选择 openfire[default] 右击 在eclipse上部署openfire 3.9.1源码,並配置openfire

刷新eclipse项目多出两个文件夹 work 和target 在eclipse上部署openfire 3.9.1源码,並配置openfire 在eclipse上部署openfire 3.9.1源码,並配置openfire

选中Arguments选项卡,在VM arguments中填入 -DopenfireHome="${workspace_loc:openfire_src}/target/openfire"
注意不要丢了前面一个小横线 如果你的项目名不是openfire_src 的话 要换成你的项目名 即 :-DopenfireHome="${workspace_loc:【项目名】}/target/openfire" 然后选择classpath选项卡 选中User-Entries --> 选择右侧的Advanced...-->选择Add Folder 分别添加src/i18n 确定 选择右侧的Advanced...-->选择Add Folder build/lib/dist 确定 选择右侧的Advanced...-->选择Add Folder src/resources/jar 确定
在eclipse上部署openfire 3.9.1源码,並配置openfire 在eclipse上部署openfire 3.9.1源码,並配置openfire 点击Apply --> Run 控制台出现了 Openfire 3.8.2 [Nov 27, 2013 6:01:35 PM] Admin console listening at http://127.0.0.1:9090 然后就大功告成了....... 恭喜 恭喜 访问http://127.0.0.1:9090 开始配置你的openfire吧。

在浏览器中输入上图的地址http://127.0.0.1:9090

在eclipse上部署openfire 3.9.1源码,並配置openfire

选择中文,然后继续。服务器设置可直接跳过。数据库设置选择标准数据库连接,点击继续 在eclipse上部署openfire 3.9.1源码,並配置openfire

在数据库设置-标准连接设置界面,选择数据库驱动mysql,更改数据库url,其中需要更改的有服务器ip地址,还有数据库名,建议单独建立一个名为openfire的数据库。输入数据库管理员的账号和密码,下一步。 在eclipse上部署openfire 3.9.1源码,並配置openfire

数据库连接成功后界面,直接点击继续。 在eclipse上部署openfire 3.9.1源码,並配置openfire

管理员账户设置界面,输入管理员的邮箱地址,还有管理员的账号的密码,初始账号为admin。

在eclipse上部署openfire 3.9.1源码,並配置openfire

完成设置,登录到管理控制台,初始账户名admin密码为上一步设置的密码。 在eclipse上部署openfire 3.9.1源码,並配置openfire

登陆成功后显示 在eclipse上部署openfire 3.9.1源码,並配置openfire

检测服务器是否配置成功,到http://www.igniterealtime.org/downloads/index.jsp下载Spark

在eclipse上部署openfire 3.9.1源码,並配置openfire

安装Spark,一路next,然后finish。运行Spark,创建Spark账号 在eclipse上部署openfire 3.9.1源码,並配置openfire

使用创建的账号登陆Spark,登陆成功可在Openfire管理控制台的用户组看到新注册的用户和在线状态 在eclipse上部署openfire 3.9.1源码,並配置openfire 在eclipse上部署openfire 3.9.1源码,並配置openfire

 

 

备注:

我测试用的是4.0.3的版本,还遇到以下问题:

 

遇到报错信息里有ant,我把ant.jar下载后放到lib下,并加入buildpath,然后重新用ant编译项目。

ant.jar下载地址:http://ant.apache.org/bindownload.cgi

在eclipse上部署openfire 3.9.1源码,並配置openfire

 

 

启动报错:

在eclipse上部署openfire 3.9.1源码,並配置openfire

 

还有一个关键的一步是Openfire的Home设定
在XMPPServer类中有一个locateOpenfire方法,这个方法就是设置openfireHome属性。

    1. 具体修改如下:
      // and just look for home in a standard sub-dir location and verify
      // by looking for the config file
      if (openfireHome == null) {
      try {
             //修改的是下面的代码,将".."替换为其他路径了
             openfireHome = verifyHome("C://Program Files//Openfire", jiveConfigName).getCanonicalFile();
      }
      catch (FileNotFoundException fe) {
          // Ignore.
      }
       catch (IOException ie) {
            // Ignore.
      }
      }这部分默认是找当前路径,你可以修改它为你安装Openfire的路径,这样问题就解决了

 

路径我配置成ant编译后所在路径了

在eclipse上部署openfire 3.9.1源码,並配置openfire

 

 

编译项目:右击build目录下的build.xml,这样也是可以的

在eclipse上部署openfire 3.9.1源码,並配置openfire

 

 

右击项目

 

 在eclipse上部署openfire 3.9.1源码,並配置openfire

 

 

在eclipse上部署openfire 3.9.1源码,並配置openfire

 

在eclipse上部署openfire 3.9.1源码,並配置openfire

 

 

在eclipse上部署openfire 3.9.1源码,並配置openfire

 

在eclipse上部署openfire 3.9.1源码,並配置openfire

 

启动成功后访问  http://127.0.0.1:9090

 

openfire源码修改聊天消息发送内容

MessageRouter.java类

 

 在eclipse上部署openfire 3.9.1源码,並配置openfire

 


推荐阅读
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
author-avatar
你送的指环_526
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有