Java 如何在使用Servlet时纠正以下错误?

Java 如何在使用Servlet时纠正以下错误?,java,jsp,servlets,Java,Jsp,Servlets,我正在学习servlet的概念。最初,我参考了这个链接并处理HelloWorld示例 在提交带有名称和年龄的JSP表单时,我遇到以下错误。请告知必须采取的措施 我的文件放置位置如下: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xml

我正在学习servlet的概念。最初,我参考了这个链接并处理HelloWorld示例

在提交带有名称和年龄的JSP表单时,我遇到以下错误。请告知必须采取的措施

我的文件放置位置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">

<servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>example.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/servletexmple</url-pattern>
</servlet-mapping>
</web-app>
C:\Program Files\Apache软件基金会\Tomcat 5.5\webapps\servletexmple\hello.jsp

C:\Program Files\Apache软件基金会\Tomcat5.5\webapps\servletexmple\example\HelloServlet.class

C:\Program Files\Apache软件基金会\Tomcat 5.5\webapps\servletexmple\WEB-INF\WEB.xml

Exception:

javax.servlet.ServletException: Wrapper cannot find servlet class example.HelloServlet or a class it depends on
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
java.lang.Thread.run(Unknown Source)

Root Cause:
java.lang.ClassNotFoundException: example.HelloServlet
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1359)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1205)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
java.lang.Thread.run(Unknown Source)
我的web.xml文件包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<web-app 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">

<servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>example.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/servletexmple</url-pattern>
</servlet-mapping>
</web-app>

HelloServlet
example.HelloServlet
HelloServlet
/servletexmple

您必须将类文件放入
webapps/servletexmple/WEB-INF/classes
中。在这里,您应该遵循包结构。即,将文件放入

webapp/servletexample/WEB-INF/classes/example/HelloServlet


在web.xml中,应该使用servlet的完全限定名。例如,
示例.HelloServlet
。有关Java软件包的更多信息,请参见您必须将类文件放入
webapps/servletexmple/WEB-INF/classes
。在这里,您应该遵循包结构。即,将文件放入

webapp/servletexample/WEB-INF/classes/example/HelloServlet

在web.xml中,应该使用servlet的完全限定名。例如,
示例.HelloServlet
。有关Java软件包的更多信息,请参见您的根本原因告诉您未找到
示例.HelloServlet

这是因为,在web.xml中,您从未声明过
example.HelloServlet

更改您当前的声明:

<servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>classes.HelloServlet</servlet-class>
</servlet>


to:

<servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>example.HelloServlet</servlet-class>
</servlet>

HelloServlet
类HelloServlet
致:
HelloServlet
example.HelloServlet
您的根本原因告诉您未找到
示例.HelloServlet

这是因为,在web.xml中,您从未声明过
example.HelloServlet

更改您当前的声明:

<servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>classes.HelloServlet</servlet-class>
</servlet>


to:

<servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>example.HelloServlet</servlet-class>
</servlet>

HelloServlet
类HelloServlet
致:
HelloServlet
example.HelloServlet

所以,应该在xml文件中进行任何修改吗?现在可以了。谢谢Bozho:)我可能需要你的帮助,从现在开始我下一刻要执行的任务。所以,应该在xml文件中进行任何修改吗?现在可以了。谢谢波佐:)我可能需要你的帮助,从现在开始,我将在下一刻完成这项任务。