本文地址: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 插件的更多相关文章

  1. 学习如何写一个vue插件【入门篇】

    #### 疑答 1.市面上已经有那么多插件可用,为什么还要造轮子?学习.借鉴思想.应用到开发 2.能否在项目中使用?与网上插件使用相同   更新维护问题怎么解决? 自身动力,使用者反馈等 #### 准 ...

  2. javaScrpit插件学习制作

    最近一直在学习javaScrpit插件制作,前几天学习制作了一个插件但存在严重缺陷. javaScrpit插件写法多种多样通过这几天的学习终于找到了适合自己的方法.前几天的缺陷也得到了解决.下面我们用 ...

  3. (转)OpenFire源码学习之十四:插件管理

    转:http://blog.csdn.net/huwenfeng_2011/article/details/43418433 Plugin管理 Openfire把插件模块加入到容器分为以下步骤: l  ...

  4. 【转】怎样创建一个Xcode插件(Part 1)

      原文:How To Create an Xcode Plugin: Part 1/3 原作者:Derek Selander 译者:@yohunl 译者注:原文使用的是xcode6.3.2,我翻译的 ...

  5. 值得H5前端学习的60个JS插件(含DEMO演示)

    下面也可以说是H5前端学习的js插件大全.基本包含了大部分的前端最前沿的js插件和库. 布局 SuperEmbed.js- 是一个Javascript库,可检测出网页上的内嵌视频并使他们能够变成响应式 ...

  6. 使用Visual Studio SDK制作GLSL词法着色插件

    使用Visual Studio SDK制作GLSL词法着色插件 我们在Visual Studio上开发OpenGL ES项目时,避免不了写Shader.这时在vs里直接编辑shader就会显得很方便. ...

  7. 在Eclipse中制作SSH配置文件提示插件

    原文地址:http://blog.csdn.net/longyuhome/article/details/8968093 这篇博客算是对原先的“在Eclipse中制作和使用struts2配置文件提示插 ...

  8. CKEditor在线编辑器增加一个自定义插件

    CKEditor是一个非常优秀的在线编辑器,它的前身就是FCKEditor,CKEditor据官方说是重写了内核的,但功能和性能比FCKEditor更为强大和优越.记得07年的时候第一次接触FCKEd ...

  9. 跟我一步一步开发自己的Openfire插件

    http://www.blogjava.net/hoojo/archive/2013/03/07/396146.html 跟我一步一步开发自己的Openfire插件 这篇是简单插件开发,下篇聊天记录插 ...

随机推荐

  1. printf 整数类型都用 uint8_t

    #include <iostream> #include <string> #include <tuple>   #include <utility> ...

  2. centos 安装 python2.7 运行webpy 项目

    1.服务器是centos5,在virtualbox里装的.网络选择桥接,ip与主机在一个网段类.主机ip为xxx.xxx.xxx.69,服务器ip定义为xxx.xxx.xxx.66,GATEWAY与N ...

  3. java class的property的get和set方法生成规则

    package rh.intellicareAppServer.dao; public class test { String aA; String aa; public String getaA() ...

  4. javascript 中正则表达式应用

    <script type="text/javascript"> var str="<script type='text/javascript'> ...

  5. javascript匿名函数应用

    1.给指定对象新增一些属性的写法: /*给一个对象增加属性*/ var myDate=(function(obj){ obj.addName=function(name){ this.name=nam ...

  6. eclipse 添加 hibernate 插件

    eclipse helios(3.6)版 1.启动eclipse 2.选择Help > Install New Software...> 3.添加如下地址:http://download. ...

  7. js中使用进行字符串传参

    在js中拼接html标签传参时,如果方法参数是字符串需要加上引号,这里需要进行字符转义 <a href='javascript:addMenuUI("+"\"&qu ...

  8. ubuntu graphic cannot display

    1.ubuntu resuce mode 2.mount -o,remount,rw /dev/sda6 / 3.dhclient eth0 4.apt-get update apt-get inst ...

  9. vtk保存图像

    vtkWindowToImageFilter * wif = vtkWindowToImageFilter::New(); vtkBMPWriter *bmpw = vtkBMPWriter::New ...

  10. C++设计模式-Command命令模式

    Command命令模式作用:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对请求排队或记录请求日志,以及支持可撤销的操作. 由于“行为请求者”与“行为实现者”的紧耦合,使用命令模式 ...