servlet不可用

时间:2012-06-21 10:17:33

标签: java jsp servlets tomcat6 web.xml

我有一个远程tomcat 6.0.24服务器,其上有一个web-app。 现在,当我输入映射在服务器上的特定网址(website / wordbank / xmldictionaryservice)时,我得到以下内容:

  

HTTP状态404 - Servlet xmldictionaryserviceservlet不可用

     

类型:状态报告

     

消息:Servlet xmldictionaryserviceservlet不可用

     

description:请求的资源(Servlet   

...我期待一个带有文件选择器和提交按钮的小表单。

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

我检查了各种类似的线程,但他们没有帮助我。 有没有人知道这里有什么问题?

3 个答案:

答案 0 :(得分:1)

  

Servlet xmldictionaryserviceservlet不可用

这个特定于Tomcat的消息意味着在webapp启动期间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类。

答案 1 :(得分:0)

Tomcat正在识别URL,因此尝试加载 XMLDictionaryServiceServlet 来创建实例。似乎加载类 XMLDictionaryServiceServlet 时出现问题,请检查类( XMLDictionaryServiceServlet )是否遵循servlet约定。

您能否粘贴 XMLDictionaryServiceServlet.java的源代码

答案 2 :(得分:0)

重新启动环境可以完成这项工作。它在日食中太频繁了

相关问题