第一个servlet程序部署时出现的错误

在部署第一个Servlet程序时遇到了HTTP 404和500错误。错误间歇性交替出现,根源是`NoClassDefFoundError`,由于HelloWorldServlet的类路径不正确。解决办法是确保Java类位于包内,并将整个包复制到webappsmyWEB-INFclasses目录下。web.xml配置中,servlet-class应填写完整包名.
摘要由CSDN通过智能技术生成

具体的部署参照一下文档进行:
https://blog.csdn.net/xn6517/article/details/49516299?_t_t_t=0.11670422769266176

部署中出现的错误:
1.HTTP Status 404 – Not Found
2.HTTP Status 500 – Internal Server Error
这两个错误是交替出现的,505错误原因如下。重点是第一行的:java.lang.NoClassDefFoundError: HelloWorldServlet (wrong name: javaWebByHand/HelloWorldServlet)

Root Cause

java.lang.NoClassDefFoundError: HelloWorldServlet (wrong name: javaWebByHand/HelloWorldServlet)
    java.lang.ClassLoader.defineClass1(Native Method)
    java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2286)
    org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:811)
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1260)
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
    org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
    org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
    org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)

错误原因在于我的Java.class文件是在包里面的,而我一直按照没有存放在包下的方法写xml内容,所以出现了查找不到的情况。
这里写图片描述
有包,就要将整个包拷贝到webapps\my\WEB-INF\classes目录下!!!!!

配置web.xml这里与教程不同,servlet-class后要写:完整的包名.HelloWorldServlet

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1"
  metadata-complete="true">

<servlet>  
    <servlet-name>my</servlet-name>  
    <servlet-class>javaWebByHand.HelloWorldServlet</servlet-class>  
</servlet>  
<servlet-mapping>  
    <servlet-name>my</servlet-name>  
    <url-pattern>/HelloWorldServlet</url-pattern>  
</servlet-mapping>


</web-app>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值