`
xxtianxiaxing
  • 浏览: 691063 次
  • 性别: Icon_minigender_1
  • 来自: 陕西
社区版块
存档分类
最新评论

openfire 源码 部署

阅读更多
1.复制src\java下所有东西;
2.openfire\src\i18n, 点OK按钮将这个文件夹加入到Classpath选项卡中;
3.同样的方式把openfire\src\resources目录下的jar文件夹也加到Classpath选项卡中。
4.openfire的起始类为org.jivesoftware.openfire.starter.ServerStarter.java,但是直接运行此类却有问题,因为此类是针对Openfire安装包而设计的,此类的功能是将所用到的JAR文件解压并将class文件加载到虚拟机中,而我们要用的却是源代码中我们自己编译好的class文件。所以,我们需要一个新的启动类。
一个简单的实现方法就是把src/java下的东西复制到我创建的java project下的src里了,并修改org.jivesoftware.openfire.starter包中ServerStarter.java类的源代码,具体如下(当然最好是与ServerStarter.java中的方法一样,用自定义的ClassLoader来将XMPPServer.class加载到虚拟机中)
package org.jivesoftware.openfire.starter;
import org.jivesoftware.openfire.XMPPServer;
public class StandaloneStarter {

public static void main(String[] args) {

XMPPServer server = new XMPPServer();

}
}
这样程序就可以跑起来了,最后的问题就是配置文件路径的问题。
5.配置文件路径
如果文件路径配置不正确(即Openfire的Home没有设定或者设置不正确),就可能在运行时出现如下所示的问题:
Could not locate home
java.io.FileNotFoundException......

ERROR 12114 [Jive-ERR] (): 
java.io.FileNotFoundException: XML properties file does not exist: openfire.xml........
在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的路径,这样问题就可以解决了。
6.将新建的工程目录下src/web/WEB-INF/classes/openfire_init.xml导入到eclipse的查询路径里,如将src/web/WEB-INF/classes目录作为eclipse的源目录,这样openfire_init.xml自动copy到$openfire_home/classses下面,将openfire_init.xml中的openfireHome设置为$openfire_home
修改org.jivesoftware.openfire.starter.ServerStarter中的如下两个field,
private static final String DEFAULT_LIB_DIR = "../lib";
private static final String DEFAULT_ADMIN_LIB_DIR = "../plugins/admin/webapp/WEB-INF/lib";
改成:
private static final String DIR_PREFIX = "$openfire_home";
// to be your own openfire_home
private static final String DEFAULT_LIB_DIR = DIR_PREFIX + "lib";
private static final String DEFAULT_ADMIN_LIB_DIR = DIR_PREFIX + "plugins/admin/webapp/WEB-INF/lib";
现在还不知道这里为什么要这样做?????


  • 大小: 8.8 KB
0
0
分享到:
评论

相关推荐

    Openfire源码部署与开发.doc

    ### Openfire源码部署与开发知识点详解 #### 一、Openfire简介 Openfire是一款开源的实时通信服务器,基于XMPP协议。它提供了一个高效、可扩展的消息传递平台,适用于企业级即时通讯应用。Openfire支持多种客户端接...

    openfire源码部署开发

    ### Openfire源码部署开发详解 #### 一、Openfire简介 Openfire是一款开源的即时通讯服务器,基于XMPP协议栈。它支持多种客户端,并且能够处理大量的并发连接。Openfire以其灵活性、可扩展性和易用性而受到广泛欢迎...

    openfire 源码 Eclipse部署

    ### Openfire源码在Eclipse中的部署步骤详解 #### 一、概述 本文将详细介绍如何在Eclipse开发环境中部署Openfire源代码。Openfire是一款基于XMPP协议的即时消息服务器,由Ignite Realtime组织开发并维护。由于其...

    openfire 源码部署

    3. 不使用默认位置,指定到Openfire源码文件夹。 第四步,解决导入工程后的错误: 1. 解决clustering插件的错误,需在src/plugins/clustering目录下新建lib文件夹,放入coherence.jar, coherence-work.jar, ...

    openfire3.9.1 源码部署及运行

    Openfire是一款开源的即时通讯(IM)服务器,它基于XMPP协议,支持多种客户端和企业级集成。...总之,理解和掌握Openfire的源码部署不仅能够帮助你更好地定制和维护即时通讯系统,也是提升Java开发能力的好机会。

    openfire webchat源码部署相关jar

    一旦完成,Openfire WebChat的源码就可以被正确编译和执行,从而提供即时通讯服务。 在解压后的"lib"和"openfire webchat 相关jar"目录中,你可能会找到Openfire WebChat所需的其他依赖库,这些库可能包含了XML解析...

    openfire源码

    以下是对Openfire源码及其相关知识点的详细解析: 1. **XMPP协议**:XMPP(Extensible Messaging and Presence Protocol,可扩展消息传递及存在协议)是一种基于XML的开放标准,用于实现实时通信和协作。Openfire是...

    编写Openfire开发插件、部署源码

    4. **下载Openfire源码和安装程序**:从IgniteRealtime官方网站下载Openfire的安装程序和源代码。 5. **导入Openfire源文件到Eclipse**:将解压后的`openfire_src`文件夹复制到Eclipse的工作空间,然后在Eclipse中...

    openfire开发文档

    一、Openfire 源码部署与打包 1. 准备工作: 开发者需要安装MyEclipse 6.6作为集成开发环境(IDE),同时从官方网站http://www.igniterealtime.org/projects/openfire/下载Openfire的源代码。 2. 解压源码: 将...

    openfire-4.5.0源码

    通过阅读Openfire源码,开发者可以了解即时通讯系统的底层实现,学习如何处理并发连接、优化性能和保证安全性。此外,源码中的注释和文档也能帮助理解设计决策和最佳实践。对于想要二次开发或自定义功能的开发者来说...

    Openfire源代码在Eclipse3.5.2中的部署、编译、运行、部署安装

    ### Openfire 源代码在 Eclipse 3.5.2 中的部署、编译、运行与安装 #### 一、准备工作 在开始之前,需要确保已经下载了 Openfire(版本 3.6.4)、Spark(版本 2.5.8)以及 Smack(版本 3.1.0)。由于 Spark 的源码...

    openfire3.7.1在myEclipse的源码部署

    将Openfire源码解压缩到一个自定义的目录,例如E:\个人知识库\开发项目\openFire\objects\openfire_src。在myEclipse中新建一个Java项目,命名为“openfire”,并指定源码路径为刚才解压的目录。 接下来,解决编译...

    openfire3.10.0源码编译可能缺少的jar包

    openfire3.10.0源码编译可能缺少的jar包,具体的源码编译部署细节请看博文http://blog.csdn.net/haunghui6579/article/details/44513481

    openfire源码缺少的bouncycastle.jar包

    Openfire是一款开源的即时通讯(IM)服务器,它基于XMPP协议,用于构建实时通信系统。...当发现Openfire源码缺少bouncycastle.jar包时,及时添加相应版本的库可以解决相关问题,确保系统的稳定性和安全性。

    Centos Openfire环境部署

    ### Centos下Openfire环境部署知识点详解 #### 一、Openfire简介与适用场景 - **Openfire**:是一款开源的即时通讯服务器软件,基于XMPP协议,支持文本消息、语音视频聊天、文件传输等功能。 - **适用场景**:企业...

    第一个openfire插件源码及说明

    7. **打包与部署** 使用Maven或Gradle构建插件项目,生成JAR文件。将此JAR文件复制到Openfire服务器的`plugins/`目录下,Openfire会自动检测并加载新的或更新的插件。 8. **测试与调试** 启动Openfire服务器,...

    Jwchat+openfire部署

    - 获取Jwchat的源码或者预编译的包,确保与Openfire版本兼容。 - 修改Jwchat的配置文件,配置Openfire服务器地址、端口、服务器域名以及API密钥等信息。 - 如果需要,可以对Jwchat的主题、语言、权限等进行个性化...

Global site tag (gtag.js) - Google Analytics