我试图了解java servlet如何工作,我正在使用netbeans 7.1.1作为我的IDE。它托管在我的开发机器上,这是在Windows 7主机操作系统上运行的Ubuntu VM。
我使用了NetBeans向导设置我的简单的应用程序,但一定是有什么我不理解如去到URL http://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生成的bog标准默认servlet,所以我认为不值得在这里发布。
我的问题是:web.xml中是否存在缺失或错误的内容?
我已经阅读了所有关于它的内容,但看不出有任何问题。
答案 0 :(得分: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目录中。检查出来的最好方法是使用Files explorer。
答案 1 :(得分:-1)
确保在index.java中,在所有导入之前,声明包:
package Interfaz;
否则,即使web.xml正常,它也无法在该包下找到该servlet。