我试图了解 java servlet 的工作原理,并且我使用 netbeans 7.1.1 作为我的 IDE。这是托管在我的开发机器上,这是一个在 Windows 7 主机操作系统上运行的 Ubuntu 虚拟机。
我使用 netbeans 向导来设置我的简单应用程序,但是肯定有一些我不理解的地方,因为转到 url http://localhost:8080/hssdatabase/
结果以下错误消息:-
javax.servlet.ServletException: PWC1397: Wrapper cannot find servlet class hss.index or a class it depends on
这是我的项目文件夹树:-
这是我的 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 中是否有遗漏或错误的内容?
我已经阅读了所有我能找到的关于它的内容,但看不出有什么问题。
最佳答案
该消息表明您的 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 目录中。最好的检查方法是使用文件资源管理器。
关于java - netbeans 中最简单的 servlet 和 web.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10412823/