给Openfire插件加上WEB访问功能

 

最近在做与Openfire相关的内容,需要用户可以通过浏览器访问,即http://ip:7070/pluginName   7070是 openfire的 http绑定接口,在网上查了下,关于插件开发最多是 openfire开发指南(不过我还是建议英文版的http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/plugin-dev-guide.html),但与web相关的似乎没有,只介绍了 adminconsole有关的内容。

后来无意中找到了与语音聊天有关的 red5,看了下里面的源码,才知道需要自己手动添加对web功能的支持。

另一件需要注意的地方,如果通过 admin方式把插件上传到服务器时,需要重启服务器,否则至少WEB功能是用不了的,其他功能还没试过,不清楚。

private ContextHandlerCollection contexts; private WebAppContext context; private String pluginName = "red5"; public void destroyPlugin() { // TODO Auto-generated method stub System.out.println("destroy ip port pugin"); System.out.println("unloading " + pluginName + " plugin resources"); try { System.out.println("Destroying web service " + pluginName); context.stop(); } catch(Exception e) { // log.log(Level.SEVERE, e.getMessage(), e); System.out.println(e); } context = null; } public void initializePlugin(PluginManager manager, File pluginDirectory) { // TODO Auto-generated method stub System.out.println("~~~~~ Init ip port plugin ~~~~~~~"); try { System.out.println("Creating web service " + pluginName); contexts = HttpBindManager.getInstance().getContexts(); try { context = new WebAppContext(contexts, pluginDirectory.getPath(), "/" + pluginName); } catch(Exception e) { context = new WebAppContext(pluginDirectory.getPath(), "/" + pluginName); } context.setWelcomeFiles(new String[]{"index.tml"}); } catch(Exception e) { //log.log(Level.SEVERE, e.getMessage(), e); System.out.println(e); } }

 

转载请注明:Http://blog.csdn.net/laorer

你可能感兴趣的:(Web,exception,String,service,服务器,resources)