4

我试图了解 java servlet 是如何工作的,并且我使用 netbeans 7.1.1 作为我的 IDE。这托管在我的开发机器上,它是在 Windows 7 主机操作系统上运行的 Ubuntu VM。

我使用 netbeans 向导来设置我的简单应用程序,但是一定有一些我不理解的东西,因为转到 urlhttp://localhost:8080/hssdatabase/会导致以下错误消息:-

javax.servlet.ServletException: PWC1397: Wrapper 找不到 servlet 类 hss.index 或它依赖的类

这是我的项目文件夹树:-

网豆项目

这是我的 web.xml:-

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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_3_0.xsd">
    <servlet>
        <servlet-name>index</servlet-name>
        <servlet-class>hss.index</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>index</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>

我也试过: -

<url-pattern>/index</url-pattern>

http://localhost:8080/hssdatabase/index,但结果相同。

为了部署应用程序,我使用新项目向导设置了一个基本项目,然后删除了生成的 jsp。然后删除 web.xml 中标签之间的所有内容,然后使用新的 servlet 向导创建 servlet 并填写 web.xml。我有兴趣了解为什么这不起作用,而不是检查我为到达这里所采取的步骤。我正在尝试了解 web.xml 以及它与 servlet 的关系。可能是错误的 xmlns 声明吗?

而我的 index.java 只是 netbeans 生成的沼泽标准默认 servlet,所以我认为不值得在这里发布。

我的问题是:web.xml 中是否缺少某些内容或错误?

我已经阅读了我能找到的所有内容,但看不出有什么问题。

4

2 回答 2

1

该消息表明您的 hss/index.java 文件未编译,或者它所依赖的文件之一不在类路径中。您可能想查看与“运行”或“部署”操作执行相关的 ant 输出。输出应如下所示:

init:
deps-module-jar:
deps-ear-jar:
deps-jar:
Created dir: /Users/vkraemer/NetBeansProjects/WebApplication37/build/web/WEB-INF/classes
Created dir: /Users/vkraemer/NetBeansProjects/WebApplication37/build/web/META-INF
Copying 1 file to /Users/vkraemer/NetBeansProjects/WebApplication37/build/web/META-INF
Copying 2 files to /Users/vkraemer/NetBeansProjects/WebApplication37/build/web
library-inclusion-in-archive:
library-inclusion-in-manifest:
Created dir: /Users/vkraemer/NetBeansProjects/WebApplication37/build/empty
Created dir: /Users/vkraemer/NetBeansProjects/WebApplication37/build/generated-sources/ap-source-output
compile:
compile-jsps:
In-place deployment at /Users/vkraemer/NetBeansProjects/WebApplication37/build/web
Initializing...
run-deploy:
Browsing: http://localhost:8080/WebApplication37
run-display-browser:
run:
BUILD SUCCESSFUL (total time: 1 second)

您还应该验证 index.class 文件是否位于 $projectroot/build/web/WEB-INF/classes/hss 目录中。最好的检查方法是使用文件资源管理器。

于 2012-05-02T21:56:26.120 回答
-1

确保在 index.java 中,在所有导入之前,声明包:

package Interfaz;

否则即使 web.xml 没问题,它也无法在该包下找到该 servlet。

于 2012-09-03T08:03:03.243 回答