Openfire开发之Servlet的URL

     Openfire自身就是一个WebServer,在Openfire中请求Servlet需要使用URL重定向,而Openfire自己使用缓存来维护.

     可能是由于插件不会太多,所以Openfire使用一个Map来缓存,这就涉及到了一个Key和对应的Servlet的问题,其大概流程如下:

      客户端请求-->Openfire服务端接收请求-->如果是插件则将请求交给PluginServlet对象-->根据请求的地址获取jsp者是Servlet的实例.

      我遇到的问题是在Openfire的管理界面里请求jsp是好用的,但是直接通过URL地址去访问Servlet则无法找到页面,即返回了404错误.通过调试源码发现原来Openfire在对Servlet进行缓存时,缓存的Key是"jar文件名+web-customer.xml中定义的<url-pattern>.而我的问题就在于此.由于我是参照Openfire自带的UserService插件,它的jar插件文件是userservice.jar,web-customer.xml中声明的是/userservice,而最终的请求地址为http://server:9090/plugins/userService/userservice?type=add,我犯的错误是误把UserServiceServlet.java所在的文件夹userService认为是URL的一部分.这样由于我的Servlet文件存放在oaService中,jar的文件名为govoa,所以我的请求地址是http://server:9090/plugins/oaService/oamainservice?type=add就造成了无法找到页面的错误,改成http://server:9090/plugins/govoa/oamainservice?type=add后就正确了.

     这里我想造成我的误解的也是UserService这个插件本身,因为它的jar文件是userservice,存放Servlet的文件夹起名叫userService,而最终的URL地址中也是使用的userService,对于初学者造成了误会.

     注:jar的名,其实就是源码中插件的最顶级文件夹的名.

转载于:https://www.cnblogs.com/fxwdl/archive/2009/05/06/1450663.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值