本文地址: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. java 命令notes

    jps:查看本机的Java中进程信息. jstack:打印线程的栈信息,制作线程Dump. jmap:打印内存映射,制作堆Dump. jstat:性能监控工具. jhat:内存分析工具. jconso ...

  2. Stanford NLP 学习笔记2:文本处理基础(text processing)

    I. 正则表达式(regular expression) 正则表达式是专门处理文本字符串的正式语言(这个是基础中的基础,就不再详细叙述,不了解的可以看这里). ^(在字符前): 负选择,匹配除括号以外 ...

  3. 使用Spring+Junit4.4进行测试(使用注解)

    http://nottiansyf.iteye.com/blog/345819 使用Junit4.4测试 在类上的配置Annotation @RunWith(SpringJUnit4ClassRunn ...

  4. mir [20161220]

    最近玩backmir,查询了一些资料,突然领悟到原来各个地方的boss攻击和防御都有一定的上限,而相对应的,玩家也有攻击和防御,只要玩家的攻防能对付boss的攻防,就可以无伤打boss. 小时候玩热血 ...

  5. C# 与JAVA 的RSA 加密解密交互,互通,C#使用BouncyCastle来实现私钥加密,公钥解密的方法

    因为C#的RSA加密解密只有公钥加密,私钥解密,没有私钥加密,公钥解密.在网上查了很久也没有很好的实现.BouncyCastle的文档少之又少.很多人可能会说,C#也是可以的,通过Biginteger ...

  6. IOPS-百度百科

    IOPS (Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能.存储端的IOPS性能和主机端的IO是不同 ...

  7. ubuntu 14.04 compiz的ALT + TAB切换程序

    安装完ubuntu,发现不能使用ALT + TAB切换应用程序,翻遍所有百度结果,没有可行,都是拷这个拷那个...真实无语...FQgoogle,看的第一个就完美解决.记录下来,方便国人少走弯路. 首 ...

  8. ORA-15025: could not open disk "/dev/asm***"--转载

    Symptoms: 打完补丁后,数据库报错ORA-15025,数据库无法启动. alert日志信息: Wed Jul22 16:26:57 2015 ORA-15025:could not open ...

  9. IaaS, PaaS, SaaS 解释

    IaaS.PaaS.SaaS作为云计算三种服务模式,下面会着重介绍他们的定义.作用.功能.对应产品以及他们之间的关系等. 一.定义:     SaaS:Software as a Service,软件 ...

  10. 杭电acm 1003

    #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> usin ...