openfire 中 servlet 访问 404

问题:

在 openfire 中模仿插件写了自己的 servlet

<servlet>

    <servlet-name>HelloWorld</servlet-name>

    <servlet-class>org.jivesoftware.openfire.plugin.HelloWorldServlet</servlet-class>

</servlet>

<servlet-mapping>

    <servlet-name>HelloWorld</servlet-name>

    <url-pattern>/helloworld</url-pattern>

</servlet-mapping>


访问后找不到页面,返回404


查看 PluginServlet 类,这个类就是用来加载插件的 servlet 的。

servlets.put(pluginName + url, (GenericServlet)instance);


它访问的方式是:/plugins/ + 插件名称 + url


而我访问的地址没有使用插件名称,直接使用了配置的url http://127.0.0.1:9090/plugins/helloworld/helloworld/。这里的插件名称不是 helloworld,而是 linktimechathistory。


完整的 openfire servlet 配置

web-custom.xml

<servlet>

    <servlet-name>HelloWorld</servlet-name>

    <servlet-class>org.jivesoftware.openfire.plugin.HelloWorldServlet</servlet-class>

</servlet>

<servlet-mapping>

    <servlet-name>HelloWorld</servlet-name>

    <url-pattern>/helloworld</url-pattern>

</servlet-mapping>


HelloWorldServlet.java

AuthCheckFilter.addExclude("linktimechathistory/helloworld");


跳过验证,无需登录就可访问此 servlet。


这样,访问的地址就是:http://127.0.0.1:9090/plugins/linktimechathistory/helloworld

 

展开阅读全文