学习制作第一个 openfire 插件
本文地址:http://www.cnblogs.com/jying/p/3683409.html
蛋疼的自学路~~~
开始想法是修改openfire源码,但修改后发现不好测试,不会发布,不会使用,各种不会,,,于是了解到最好编写 openfire 插件,利于更新插件版本,方便更新整体openfire。于是踏上openfire 插件之路。。
网上很好的一个教程:http://blog.csdn.net/ibm_hoojo/article/details/8645369
但是!像偶这样的小白注意了,里面有些内容没讲清楚,很容易走岔路,偶把容易疑惑的点整理出来,希望能帮到其他小白~~~
1、新建一个 Java Project ,有的教程可能是直接在原来的 openfire_src 源码下添加的新 plugin 包,但个人认为,像偶一样的小白最好是新建一个 Java Project 工程,在新工程下搭建要测试的插件内容,等测试成功后再尝试 openfire_src 源码搭建不迟。此处偶命名为MyFirstPlugin
2、在工程MyFirstPlugin上右键 New ——> Folder 新建文件夹,命名为:lib(图片中有误,后经人指正,请将图片中ohterjar名用lib替换),将从 openfire 复制来的 4 个jar 文件粘贴到lib下(链接教程 一、准备工作),在工程MyFirstPlugin上右键 Refresh 刷新,lib文件夹下将加载出新加入的 4个jar 文件。注:jar包必须放在lib下!!!
3、选中这 4个jar 文件,右键 Build Path ——> Add to Build Path ,结果如图:

4、我们尽量按照openfire_src源码的架构创建新插件,所以我们要先把原来创建项目时自带的src包删除(在src包上右键,Delete),然后在工程下右键 New ——> Folder 新添加src文件夹,继而在src下创建plugins文件夹,plugins下创建myfirstplugin文件夹,myfirstPlugin下创建src文件夹。如图:

5、新建 src/plugins/myfirstplugin/src/java 包文件夹,在工程上右键 New ——> Source Folder ——> 选择 Folder name 的 Browse ——> 选择对应目录文件夹 ——> 在路径上手动添加 /java ——> Finish 。结果如图:


6、新建 com.myplugins.test.openfire.plugin 包,在 src/plugins/myfirstplugin/src/java 包文件夹右键 New ——> Package ——> Name 中输入 com.myplugins.test.openfire.plugin ——> Finish 。结果如图:

7、新建 Myfirstplugin.java 文件 , com.myplugins.test.openfire.plugin 上右键 New ——> Class 。(代码内容复制链接教程里的,注意修改类名)
8、 添加以下文件夹及其文件。(文件添加方式:工程上右键 New ——> File ——输入文件名(带后缀格式)——> Finish )

9、 将教程中代码复制粘贴到相应文件 。
10、如果 build.xml 文件有警告,关掉该文件,重新打开,如果警告依然存在,检查警告。我的警告是找不到 tomcat 服务器,我当时没安装,下载了 tomcat 5.0.28 版本(不一定非要从官网下载,建议安装5.0版,6.0 安装后会缺少文件,7.0后版本未尝试),还有一种情况是 tomcat 路径不正确,要把build.properties文件中的各路径改为自己机器上相应的路径(特别提醒:文件夹分界线用 / 而不能用 \ ,我在这上面吃了大亏 。。。)
配置 tomcat 环境的经验:http://jingyan.baidu.com/article/8065f87fcc0f182330249841.html
11、一切准备就绪,生产 jar 文件 ,现在的 Eclipse 都包含 Ant ,可以不用 dos 方式了,再说我也不会dos 方式,,,,菜单栏 Window ——> Show View ——> Ant ——> 点击 Ant 窗口的 小蚂蚁 图标 ——> 选择 工程下 build 文件夹中的 build.xml 文件 ——> Finish ——> 选择 Ant 窗口中新建 的 openfire-plugin-java 。结果为 build success 表示成功 。如图:


12、复制粘贴 jar 文件到openfire 服务器(看链接教程),注意:复制的是工程下的 那个 jar 文件,我的是 helloworld.jar 。
13、测试, 可以分别启动 openfire.exe 和 openfired.exe 测试(启动某一个时要先关掉另一个),openfire.exe 运行正常但中文显示有乱码, openfired.exe 显示正常。

ok,到此结束~~~
学习制作第一个 openfire 插件的更多相关文章
- 学习如何写一个vue插件【入门篇】
#### 疑答 1.市面上已经有那么多插件可用,为什么还要造轮子?学习.借鉴思想.应用到开发 2.能否在项目中使用?与网上插件使用相同 更新维护问题怎么解决? 自身动力,使用者反馈等 #### 准 ...
- javaScrpit插件学习制作
最近一直在学习javaScrpit插件制作,前几天学习制作了一个插件但存在严重缺陷. javaScrpit插件写法多种多样通过这几天的学习终于找到了适合自己的方法.前几天的缺陷也得到了解决.下面我们用 ...
- (转)OpenFire源码学习之十四:插件管理
转:http://blog.csdn.net/huwenfeng_2011/article/details/43418433 Plugin管理 Openfire把插件模块加入到容器分为以下步骤: l ...
- 【转】怎样创建一个Xcode插件(Part 1)
原文:How To Create an Xcode Plugin: Part 1/3 原作者:Derek Selander 译者:@yohunl 译者注:原文使用的是xcode6.3.2,我翻译的 ...
- 值得H5前端学习的60个JS插件(含DEMO演示)
下面也可以说是H5前端学习的js插件大全.基本包含了大部分的前端最前沿的js插件和库. 布局 SuperEmbed.js- 是一个Javascript库,可检测出网页上的内嵌视频并使他们能够变成响应式 ...
- 使用Visual Studio SDK制作GLSL词法着色插件
使用Visual Studio SDK制作GLSL词法着色插件 我们在Visual Studio上开发OpenGL ES项目时,避免不了写Shader.这时在vs里直接编辑shader就会显得很方便. ...
- 在Eclipse中制作SSH配置文件提示插件
原文地址:http://blog.csdn.net/longyuhome/article/details/8968093 这篇博客算是对原先的“在Eclipse中制作和使用struts2配置文件提示插 ...
- CKEditor在线编辑器增加一个自定义插件
CKEditor是一个非常优秀的在线编辑器,它的前身就是FCKEditor,CKEditor据官方说是重写了内核的,但功能和性能比FCKEditor更为强大和优越.记得07年的时候第一次接触FCKEd ...
- 跟我一步一步开发自己的Openfire插件
http://www.blogjava.net/hoojo/archive/2013/03/07/396146.html 跟我一步一步开发自己的Openfire插件 这篇是简单插件开发,下篇聊天记录插 ...
随机推荐
- win8安装SQL Server2008企业版
win8 系统,安装的时候要先安装SQL Server2008企业版 再安装Visual studio2010,不然SQL Server会有问题.
- jquery.cookie() 的使用(原)
jquery.cookie()是一个轻量级的cookie 插件,可以读取.写入.删除 cookie. 步奏: 1. 添加jQuery插件和jQuery.cookie插件 <script src= ...
- C#实现Windows服务
资源:Walkthrough: Creating a Windows Service Application in the Component Designer: https://msdn.micro ...
- EventBus--出现的问题
--- 1 , EventBus收不到消息问题. 项目中遇到的问题,做搜索商品的时候遇到, 1.情况是一个FragmentActivity包含四个碎片Fragment,在FragmentActivit ...
- 每天一个 Linux 命令(17):whereis 命令
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s).如果省略参数,则返回所有信息. 和find相比,whereis查找的速度非 ...
- hadoop 完全分布式 下 datanode无法启动解决方法
问题描述: 在集群模式下更改节点后,启动集群发现 datanode一直启动不起来. 我集群配置:有5个节点,分别为master slave1-5 . 在master以Hadoop用户执行:start- ...
- sqlserver 2008 建立订阅发布时 报错 解决方案 “错误 2812” 无法创建存储过程
11月10日早上 一大早,还在地铁14号线上 ,接到同事给的信息 说我们的XX系统宕机了,本想没什么问题,一般服务器 只要硬件没有问题 重启一下就可以了, 但是事与愿违,偏偏最后检测到服务器磁盘阵列 ...
- Arch Linux LibreOffice 中文输入法不能切换
From: http://blog.csdn.net/shallowgrave/article/details/8501629 卸载libreoffice-kde4 # pacman -R libre ...
- DAO跨事物调用---转账
第一步创建实体类:Entity package com.beiwo.epet.entity; public class Account { private int id; private String ...
- 谈谈React Native环境安装中我遇到的坑
谈谈React Native环境安装 这个坑把我困了好久,真的是接近崩溃的边缘...整理出来分享给大家,希望遇到跟我一样问题的小伙伴能尽快找到答案. 首先,这是在初始化App之后,react-nati ...