我有一个远程 tomcat 6.0.24 服务器,上面有一个网络应用程序。 现在,当我输入映射到服务器上的特定 url ( website/wordbank/xmldictionaryservice ) 时,我会得到以下内容:
HTTP Status 404 - Servlet xmldictionaryserviceservlet is not available
type: Status report
message: Servlet xmldictionaryserviceservlet is not available
description: The requested resource (Servlet xmldictionaryserviceservlet is not available) is not available.
...我期待一个带有文件选择器和提交按钮的小表单。
web.xml 的相关部分在这里:
<web-app>
...
<servlet>
<servlet-name>xmldictionaryserviceservlet</servlet-name>
<servlet-class>wordbank.servlets.XMLDictionaryServiceServlet</servlet-class>
</servlet>
...
<servlet-mapping>
<servlet-name>xmldictionaryserviceservlet</servlet-name>
<url-pattern>/xmldictionaryservice</url-pattern>
</servlet-mapping>
...
</web-app>
xmldictionaryservice.jsp 的内容:
<html>
<body>
<form action="xmldictionaryservice" method="post" enctype="multipart/form-data">
<input name="xmlfile" type="file">
<input name="send" type="submit">
</form>
</body>
</html>
目录树是:
webapps
|
...
+-wordbank
|
...
+-xmldictionaryservice.jsp
+-WEB-INF
|
+-web.xml
+-classes
|
+-wordbank
|
...
+-servlets
|
...
+-XMLDictionaryServiceServlet.class
我已经检查了各种类似的线程,但它们没有帮助我。 有人知道这里出了什么问题吗?
最佳答案
Servlet xmldictionaryserviceservlet is not available
这条特定于 Tomcat 的消息意味着在 Web 应用程序启动期间,Tomcat 的以下操作失败了:
String servletClass = "wordbank.servlets.XMLDictionaryServiceServlet";
String servletUrlPattern = "/xmldictionaryservice";
Servlet servlet = (Servlet) Class.forName(servletClass).newInstance();
servlet.init(servletConfig);
servlets.put(servletUrlPattern, servlet);
所以,可能的原因至少是找不到servlet类,或者servlet的默认构造函数不存在或抛出异常,或者init()
方法抛出异常,或者该类根本没有实现 Servlet
(阅读:扩展 HttpServlet
)。
有关此问题的信息应该在启动过程中尽早出现在服务器日志中。再次读取服务器日志以找到真正的异常和堆栈跟踪,并相应地修复 servlet 类。
关于java - servlet 不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11136045/