openfire二次开发源码导入并编译
由于网上很多二次开发的教程已经不大适用了,这里自己写下自己导入的过程。
1.开始过程
首先下载openfire源码
,源码下载之后解压并复制到Eclipse的workspace路径中,然后eclipse里面新建Java Project,名字叫openfire_src,
与解压出来的文件名字一样,这样Eclipse会帮助你将workspace里面的相应名字的项目给导进去的。
2.导入之后报错并解决
(1)ContentFilterTest类报错
ContentFilterTest类里面报了很多错,应该是包导入错了。将
这里注释掉变成上图这样的那么就只有很少的错了,然后这里
会报错,导入dom4j的源码里面的pull-parser-2.1.10.jar包就可以了,最后
这里会报错,错误提示请都自己看。
解决方法是把这个类extends TestCase就可以了。Junit我没写过,不知道这样做是不是正确的,至少暂时没有错误了。
(2)SubDirInfoTast.java报错
把上面那个类报错解决之后就出现了新的报错
显示缺少apache ant包,下载apache-ant-1.8.2.jar下来导入即可。
(3)之后的错
由于报错实在太多,所以不再一一列举。只把解决方法贴出来。
1.导入coherence.jar、coherence-work.jar、tangosol.jar 包。
2.
这几个里面的报错就按照提示的修复来:add unimplemented methods即可。之后也有这种错误,都add unimplemented methods。
3.Bast64类的导入包的歧义性引起的错误。按照提示来排除一个包即可。
4.
这两个类提示早已定义,直接删掉即可。后面也有类已经定义的错误,也是删掉即可。
5.
这里面太多byte[]转Byte[]或者
The method subArray(byte[], Integer) in the type BitAssistant is not applicable for the arguments (Byte[], Integer)
的问题,现在还不知道怎么解决。写着写着终于解决了,见6.
6.
这里面的类的错误最开始还以为要自己改写BitAssistant类,后来发现里面有两个BitAssistant.java文件,分别位于不同的包,原来是导入包的时候有问题。所以把这些错误里面的类导入的包都修改一下。
7.都修改完之后只有这个错误了。
看了一下, 貌似没有用到这个返回的boolean值,所以我将函数返回boolean改成了void,把return true删掉了。暂时先这样改着。
8.修改完成了。终于都没有错误了,看着舒服多了。
3.接下来的配置
之后就是ant编译,debug配置了。网上教程太多,在此就不赘述了。
4.配置好之后运行
配置好之后运行出现这个界面,便在浏览器中输入上图提示的地址。但是多数情况下会报错。
那么配置的时候请注意两点:
1.复制src/i18n/openfire_i18n_en.properties和src/resources/jar/admin-sidebar.xml两个文件,到项目下的bin目录。
2.当在第三步进行Debug配置的时候,点击进入Classpath选项卡,选中User Entries,这样Advanced…就处于可用状态;点击Advanced…按钮,在Advanced Options页面,选择Add Folders, 单击OK。
选择openfire\src\i18n, 点OK按钮将这个文件夹加入到Classpath选项卡中;同样的方式把openfire\src\resources目录下的jar文件夹也加到Classpath选项卡中。
这个我实测有效,如果不把这2个文件夹添加到Classpath选项卡,那么会报下图的错误。
相信这个错误很多人见到过,并且有的教程说要修改源码的路径。但是,通过这个步骤不报这个错误了。
5.完工
最后终于配好了,并且终于出现这个界面了。
。
所需要的5个jar包,openfire源码搭建需要的5个jar包。
有的地方写的确实不大清楚,如果有疑问欢迎提出来。