2014-11-04 70 views
0

我正在開發openfire插件。Openfire插件:空指針嘗試獲取插件實例時發生異常

從jsp開始,我使用getters和setter來傳輸數據。 我的問題類似於這裏提到的問題: https://community.igniterealtime.org/message/155892#155892

我一直在試圖弄清楚一個星期。

我有以下代碼:

<%@ page 
    import="org.jivesoftware.openfire.XMPPServer, 
      de.meisterfuu.openfire.plugin.teamFantasian_UserServicePlugin, 
      org.jivesoftware.util.ParamUtils, 
      org.jivesoftware.openfire.container.Plugin, 
      org.jivesoftware.util.*, 
      java.util.*, 
      java.util.HashMap, 
      java.util.Map" 
    errorPage="error.jsp"%> 


<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%> 
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt"%> 

<% 
    boolean save = request.getParameter("save") != null;  
    String pNameSpace = ParamUtils.getParameter(request, "pNameSpace"); 
    String pModule = ParamUtils.getParameter(request, "pModule"); 
    String pCreateUser = ParamUtils.getParameter(request, "pCreateUser"); 
    String pCreateUser_input = ParamUtils.getParameter(request, "pCreateUser_input"); 
    String pCreateUser_output = ParamUtils.getParameter(request, "pCreateUser_output"); 




    teamFantasian_UserServicePlugin plugin = (teamFantasian_UserServicePlugin) XMPPServer.getInstance().getPluginManager().getPlugin("teamFantasian_UserServicePlugin"); 


    Collection<Plugin> a = XMPPServer.getInstance().getPluginManager().getPlugins(); 

    out.write(Arrays.toString(a.toArray())); 

    if(plugin == null) { 

    out.println("Cant find plugin ..!!"); 
    return; 
    } 

這是我的目錄結構:

/home/manoj/final/Openfire/src/plugins/teamFantasian_UserServicePlugin 
|-- lib 
| |-- asm-3.1.jar 
| |-- commons-pool2-2.0.jar 
| |-- fluent-hc-4.3.2.jar 
| |-- httpclient-4.3.3.jar 
| |-- httpcore-4.3.2.jar 
| |-- jackson-core-asl-1.9.2.jar 
| |-- jackson-jaxrs-1.9.2.jar 
| |-- jackson-mapper-asl-1.9.2.jar 
| |-- jackson-xc-1.9.2.jar 
| |-- jedis-2.4.2.jar 
| |-- jersey-bundle-1.18.jar 
| |-- jersey-servlet-1.18.jar 
| |-- jettison-1.1.jar 
| `-- jsr311-api-1.1.1.jar 
|-- logo_large.gif 
|-- logo_small.gif 
|-- plugin.xml 
|-- readme.html 
`-- src 
    |-- i18n 
    | `-- teamFantasian_UserServicePlugin_i18n.properties 
    |-- java 
    | `-- de 
    |  `-- meisterfuu 
    |   `-- openfire 
    |    `-- plugin 
    |     |-- teamFantasian_UserServicePlugin.java 
    |     `-- UserServiceHelper.java 
    `-- web 
     |-- images 
     | |-- error-16x16.gif 
     | `-- success-16x16.gif 
     `-- teamFantasian_UserServicePlugin.jsp 

10 directories, 24 files 

回答

0

不要使用下劃線爲你的插件名稱。 將您的插件重命名爲teamFantasianUserServicePlugin。

並獲得與實例:

XMPPServer.getInstance().getPluginManager().getPlugin("teamfantasianuserserviceplugin"); 

的插件名稱應小寫。

+0

嘿,你可以請給我任何參考,我應該如何使用父插件。我找不到任何示例代碼。 – simplyblue 2014-11-05 14:34:48

+0

你對「父插件」有什麼意思? – 2014-11-05 17:16:57

+0

我想調用另一個插件的方法。例如,我有userservice.jar,我想在我自己的插件中使用這個插件的方法,而不是僅僅複製源代碼,如果發現userservice.jar的新更新,那麼我不必再次重構代碼。 – simplyblue 2014-11-06 02:55:46

相關問題