Servlet xxx不可用

时间:2010-04-05 02:16:09

标签: java servlets

在我的网络应用程序的web.xml中,我已将服务器配置如下:

 <servlet>
  <servlet-name>SOS</servlet-name>
  <servlet-class>cn.SOS</servlet-class>
  <init-param>
   <param-name>configFile</param-name>
   <param-value>/WEB-INF/conf/sos.config</param-value>
  </init-param>
  <init-param>
   <param-name>dbConfigFile</param-name>
   <param-value>/WEB-INF/conf/dssos.config</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>SOS</servlet-name>
  <url-pattern>/sos</url-pattern>
 </servlet-mapping>

然而,当我请求这个servlet时,我收到一个错误,告诉我“Servlet SOS不可用”,但我确信这个servlet确实存在于WEB-INFO / lib / sos.jar中。 我已经从日志中看到了servlet下的初始化工作。 我想知道为什么tomcat找不到servlet?

2 个答案:

答案 0 :(得分:1)

简而言之:

HttpServlet SOS = new cn.SOS();
SOS.init(servletConfig);
SOS.init();

失败了。

阅读appserver日志以查找原因并根据异常和堆栈跟踪相应地修复问题。如果您在日志中找不到任何内容,则很可能在登录期间出现故障。记录器是否正确配置?

另一个原因也可能是您正在查找错误的日志。在Tomcat中,未恢复的异常通常记录到stderr,并且通常不会与stdout在同一个日志文件中。更重要的是,它完全取决于日志记录配置。

我会说:如果你真的无法自行解决日志问题,请运行一个调试器。

答案 1 :(得分:0)

这不仅仅是关于web.xml中的条目。服务请求时,Servlet实例应该可用。由于某些异常,大多数情况下您的servlet实例可能不可用。检查您的日志文件以找到更多线索。

还要查看servlet的init方法代码。大部分操作可能都失败了。