您的位置:首页 > 编程语言 > Java开发

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

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

入正题,看到这篇文章的的网友应该已经安装了jdk,eclipse,我就不在安装这些开发工具上赘述了,附载一下openfire的下载地址:http://www.igniterealtime.org/downloads/index.jsp

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

解决办法:

在XMPPServer类中有一个locateOpenfire方法,这个方法就是设置openfireHome属性。

第1部分的代码如下:

String jiveConfigName = "conf" + File.separator + "openfire.xml";

// First, try to load it openfireHome as a system property.

if (openfireHome == null) {

String homeProperty = System.getProperty("openfireHome");

try {

if (homeProperty != null) {

openfireHome = verifyHome(homeProperty, jiveConfigName);

}

}

catch (FileNotFoundException fe) {

// Ignore.

}

}

是在环境变量设置了Openfire的Home的情况下寻找openfire.xml文件

你可以更改第二部分的代码让Openfire找到Home:

// If we still don't have home, let's assume this is standalone

// 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的路径,这样问题就可以解决了。

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

解决办法:

这时因为是文件路径所导致的问题,需要将admin-sidebar.xml和openfire_i18n_en.properties这2个文件直接放在openfire\bin目录下即可解决这个问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: