我是一个新手,也在寻找同样问题的解决方案。我已按照 Elite Gentleman 和 Bozho 概述的步骤进行操作 here .所以首先,非常感谢大家。但我似乎仍然有同样的问题。现在根据我的理解和实现,我的情况是这样的:
我的 servlet 类 VendorRegistration 位于以下文件夹中:C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\VendorReg\WEB-INF\classes
我的 web.xml 位于:C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\VendorReg\WEB-INF\
但是,我似乎仍然遇到错误:
****HTTP 状态 500 - 类型 异常报告消息描述 服务器遇到内部错误 (),导致它无法完成此请求。异常 javax.servlet.ServletException: Wrapper 找不到 servlet 类 VendorRegistration 或其依赖的类****
我还在下面附加了我的 web.xml 文件供您考虑:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>
<servlet>
<servlet-name>VendorRegistration</servlet-name>
<servlet-class>VendorRegistration</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>VendorRegistration</servlet-name>
<url-pattern>/VendorRegistration</url-pattern>
</servlet-mapping>
</web-app>
我正在尝试通过 URL 访问 servlet:http://localhost:8080/VendorReg/VendorRegistration .我错过了什么?我在安装 Apache 之前编译了 .class 文件。因此直接将类文件复制粘贴到文件夹中。这会是个问题吗?
最佳答案
类路径中缺少 servlet 或其依赖项之一。
首先,始终将 Java 类放在一个包中,servlet 也是如此。无包类对于普通包中的类是不可见的。对于 servlet,这仅适用于特定环境。你不想依赖它。
package com.example;
public class VendorRegistration extends HttpServlet {
// ...
}
有了这个包,编译的.class
文件必须以 /WEB-INF/classes/com/example/VendorRegistration.class
结尾.不要忘记更改关联的 <servlet-class>
输入 web.xml
相应地。
<servlet>
<servlet-name>VendorRegistration</servlet-name>
<servlet-class>com.example.VendorRegistration</servlet-class>
</servlet>
如果这没有帮助,那么您应该放入包含在任何 servlet 的 import
中指定的(in)直接类的类或 JAR 文件。声明也在 /WEB-INF/classes
(对于 .class
文件)或 /WEB-INF/lib
(对于 JAR 文件)。异常堆栈跟踪中的根本原因应该告诉它到底是哪个类。只需阅读堆栈跟踪。
另见:
- > Servlets info page - 包含一个 Hello World 和几个有用的链接
关于java - 错误 : Wrapper cannot find servlet class VendorRegistration or a class it depends on,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5155602/