学习制作第一个 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插件 这篇是简单插件开发,下篇聊天记录插 ...
随机推荐
- java 命令notes
jps:查看本机的Java中进程信息. jstack:打印线程的栈信息,制作线程Dump. jmap:打印内存映射,制作堆Dump. jstat:性能监控工具. jhat:内存分析工具. jconso ...
- Stanford NLP 学习笔记2:文本处理基础(text processing)
I. 正则表达式(regular expression) 正则表达式是专门处理文本字符串的正式语言(这个是基础中的基础,就不再详细叙述,不了解的可以看这里). ^(在字符前): 负选择,匹配除括号以外 ...
- 使用Spring+Junit4.4进行测试(使用注解)
http://nottiansyf.iteye.com/blog/345819 使用Junit4.4测试 在类上的配置Annotation @RunWith(SpringJUnit4ClassRunn ...
- mir [20161220]
最近玩backmir,查询了一些资料,突然领悟到原来各个地方的boss攻击和防御都有一定的上限,而相对应的,玩家也有攻击和防御,只要玩家的攻防能对付boss的攻防,就可以无伤打boss. 小时候玩热血 ...
- C# 与JAVA 的RSA 加密解密交互,互通,C#使用BouncyCastle来实现私钥加密,公钥解密的方法
因为C#的RSA加密解密只有公钥加密,私钥解密,没有私钥加密,公钥解密.在网上查了很久也没有很好的实现.BouncyCastle的文档少之又少.很多人可能会说,C#也是可以的,通过Biginteger ...
- IOPS-百度百科
IOPS (Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的性能.存储端的IOPS性能和主机端的IO是不同 ...
- ubuntu 14.04 compiz的ALT + TAB切换程序
安装完ubuntu,发现不能使用ALT + TAB切换应用程序,翻遍所有百度结果,没有可行,都是拷这个拷那个...真实无语...FQgoogle,看的第一个就完美解决.记录下来,方便国人少走弯路. 首 ...
- ORA-15025: could not open disk "/dev/asm***"--转载
Symptoms: 打完补丁后,数据库报错ORA-15025,数据库无法启动. alert日志信息: Wed Jul22 16:26:57 2015 ORA-15025:could not open ...
- IaaS, PaaS, SaaS 解释
IaaS.PaaS.SaaS作为云计算三种服务模式,下面会着重介绍他们的定义.作用.功能.对应产品以及他们之间的关系等. 一.定义: SaaS:Software as a Service,软件 ...
- 杭电acm 1003
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> usin ...