这些天我真的很疯狂,我正在尝试开发一个servlet,但是我真的不明白为什么这个不能工作。
下面是代码:
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:
<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位于:
/var/lib/tomcat6/webapps/wipd/为了完成这项工作,我需要在运行在VM上的Debian上安装的Tomcat6下运行servlet,我目前正在用servlet运行Gentoo,在Gentoo上运行javac之后,我将文件.class放在Debian上。但如果我冲浪到:
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,但什么也没有。我真的无法理解。
提前谢谢。
发布于 2012-09-24 23:24:42
您需要将servlet包含在某个包中。做以下改变-
package a.b.c; // added
public class WipdServlet extends GenericServlet {
// .. other code
}web.xml :-
<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
发布于 2014-06-19 09:05:08
我也面临着同样的问题。实际上,我的一个程序在经过几处更改后已经在工作,它向我显示了这个错误。我甚至撤销了这些改变,但它还是发生在我身上。最后,我为我的场景找到了一个可行的解决方案。
简单:
1.试着清理你的项目,然后再运行。如果它显示相同的错误,如果您确信代码没有任何问题,那么,
2.启用“项目”菜单下的“自动生成”菜单项,并尝试清理项目。这一次对我有效。
听说这是因为当我们做一些改变和运行,eclipse在它的背景中也做了一些改变。因此,即使我们恢复变化,eclipse也可能没有恢复它在后台所做的更改。因此,执行这两个步骤将确保它与用户更改与其背景更改相匹配。
希望它也能帮助和解决你的问题。
https://stackoverflow.com/questions/12574041
复制相似问题