首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误500 -包装器找不到servlet类Tomcat6

错误500 -包装器找不到servlet类Tomcat6
EN

Stack Overflow用户
提问于 2012-09-24 22:52:48
回答 2查看 9.3K关注 0票数 0

这些天我真的很疯狂,我正在尝试开发一个servlet,但是我真的不明白为什么这个不能工作。

下面是代码:

代码语言:javascript
复制
import java.io.IOException;
import javax.servlet.ServletException;

import java.io.BufferedReader;
import java.io.PrintWriter;

import javax.servlet.ServletResponse;
import javax.servlet.ServletRequest;
import javax.servlet.GenericServlet;

public class WipdServlet extends GenericServlet 
{
    public void service(ServletRequest request, ServletResponse response)
    throws IOException {
        PrintWriter out = response.getWriter();

        out.println("<html>");
        out.println("<body>");
        out.println("<h1>ssup WIPD Servlet</h1>");
        out.println("Content Type: " + request.getContentType());
        out.println("Content Length: " + request.getContentLength());
        out.println("</body>");
        out.println("</html>"); 

    }
}

和web.xml:

代码语言:javascript
复制
<web-app>
    <servlet>
        <servlet-name>Wipd</servlet-name>
        <servlet-class>WipdServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>Wipd</servlet-name>
            <url-pattern>/wipd</url-pattern>    
    </servlet-mapping>
</web-app>

servlet位于:

代码语言:javascript
复制
/var/lib/tomcat6/webapps/wipd/

为了完成这项工作,我需要在运行在VM上的Debian上安装的Tomcat6下运行servlet,我目前正在用servlet运行Gentoo,在Gentoo上运行javac之后,我将文件.class放在Debian上。但如果我冲浪到:

代码语言:javascript
复制
http://192.168.0.177:8080/wipd/wipd.

我得到:

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102):包装器找不到servlet类WipdServlet或依赖于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489的类) java.lang.Thread.run(Thread.java:636)

我甚至尝试将类放入包中,并编辑指定包的web.xml,但什么也没有。我真的无法理解。

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2012-09-24 23:24:42

您需要将servlet包含在某个包中。做以下改变-

代码语言:javascript
复制
package a.b.c; // added

public class WipdServlet extends GenericServlet {

    // .. other code
}

web.xml :-

代码语言:javascript
复制
<web-app>
    <servlet>
        <servlet-name>Wipd</servlet-name>
        <servlet-class>a.b.c.WipdServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>Wipd</servlet-name>
        <url-pattern>/wipd</url-pattern>    
    </servlet-mapping>
</web-app>

部署完毕后,您应该在以下位置找到您的类-

/var/lib/tomcat6/webapps/wipd/WEB-INF/classes/a/b/c/WipdServlet.class

票数 0
EN

Stack Overflow用户

发布于 2014-06-19 09:05:08

我也面临着同样的问题。实际上,我的一个程序在经过几处更改后已经在工作,它向我显示了这个错误。我甚至撤销了这些改变,但它还是发生在我身上。最后,我为我的场景找到了一个可行的解决方案。

简单:

1.试着清理你的项目,然后再运行。如果它显示相同的错误,如果您确信代码没有任何问题,那么,

2.启用“项目”菜单下的“自动生成”菜单项,并尝试清理项目。这一次对我有效。

听说这是因为当我们做一些改变和运行,eclipse在它的背景中也做了一些改变。因此,即使我们恢复变化,eclipse也可能没有恢复它在后台所做的更改。因此,执行这两个步骤将确保它与用户更改与其背景更改相匹配。

希望它也能帮助和解决你的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12574041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档