学习制作第一个 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插件 这篇是简单插件开发,下篇聊天记录插 ...
随机推荐
- 关于Winform 2.0以后多线程不能更新UI的办法
DotNet 2.0以后Winform在多线程Debug模式下更新UI会报这个错: 线程间操作无效: 从不是创建控件"XXX"的线程访问它. 解决办法如下: 1.在Winform的 ...
- git学习:多人协作,标签管理
多人协作: 查看远程库的信息, git remote 推送分支到远程库 git push origin master/dev 注意:master是主分支,时刻需要与远程同步 dev是开发分支,也需要与 ...
- git学习1:git安装和配置
Git是什么?世界上最先进的分布式版本控制系统,记录了一个文本文件的每次一修改信息,比如,一篇散文,从草稿到最终出版,经历过无数次修改,修改了标点符号形成一个版本,老师帮助修改形成一个版本,同学帮忙修 ...
- web应用虚拟目录的映射
1.新建一个web应用.在D盘新建一个news文件夹,文件夹下面新建一个html文件.如下图所示: 2.将web应用映射到服务器的虚拟目录 第一种方式: 2.1 用记事本打开tomcat目录下面的se ...
- 解压版Tomcat配置
解压版Tomcat配置(本例Tomcat6): 一 配置Tomcat 1 下载Tomcat Zip压缩包,解压. 如果增加tomcat的用户名和密码,则修改/conf/tomcat-us ...
- 带无缝滚动的轮播图(含JS运动框架)
今天学习了一下轮播图的写作,想到前一阵学过的无缝滚动得思想,所以就把轮播与滚动结合了一下.不过我的代码的神逻辑我自己都不敢恭维,在没网没参照的情况下,只能硬着头皮往下写,希望跟大家共勉吧. js运动框 ...
- .NET 平台下的插件化开发内核(Rabbit Kernel)-转
什么是RabbitHub? RabbitHub 是专门针对 .NET 平台所设计.研发的一套相对完整的插件开发框架,它是由一个内核两大框架多个组件及一系列的开发时支持而构成. RabbitHub 架构 ...
- [源码]ObjectIOStream 对象流 ByteArrayIOStream 数组流 内存流 ZipOutputStream 压缩流
1.对象流 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File ...
- js判断浏览器
function myBrowser(){ var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 ; if (isOpera) { ret ...
- [转]Android使用WebView从相册/拍照中添加图片
原地址:http://blog.csdn.net/djcken/article/details/46379929 解决这个问题花了很长时间搜索了解,网上大部分使用openFileChooser但都没解 ...