servlet激活器学习中主要遇到两个问题:
1、什么是servlet激活器?
2、servlet的激活器如何配置?
问题1:servlet激活器很多iteye博主,以及官网上是这样说的,如果多个web应用程序都要用到这个servlet,我们不必再web应用程序中单独注册这个servlet,而只需在web.xml中映射其访问路径即可,这个servlet的作用就是激活和调用其他的servlet,这就是所谓的servlet激活器。
问题2:配置映射路径,
<servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping>
启动tomcat,发生以下异常
Servlet mapping specifies an unknown servlet name invoker,
这种情况是因为你没有去掉tomcat下conf下web.xml文件夹中以下注释
<servlet> <servlet-name>invoker</servlet-name> <servlet-class> org.apache.catalina.servlets.InvokerServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet>
如果在tomcat5.x中以上操作都已完成,应该没有什么问题。
在tomcat6.x中出现如下异常
Servlet of class org.apache.catalina.servlets.InvokerServlet is privileged and cannot be loaded by this web application
需要在tomcat下conf下的context.xml中为Context添加两个属性
<Context reloadable="true" privileged="true">
补充:如果你用的eclipse是直接将项目部署到tomcat下webapps不用补充,已经OK
我用的eclipseJ2ee3.5,如上图,tomcat是在eclipse工作空间下的,那么你需要修改的就是Servers工程中tomcat的web.xml和context.xml(tomcat6.x需要修改),等到给客户部署到服务器上的时候不要忘记修改tomcat下的web.xml和context.xml(tomcat6.x需要修改),此文粗糙,希望对遇到类似问题的同行使用。