编程jsp servlet 第一个程序: HelloServlet 运行错误 404:
这篇博文原发自博客园:https://www.cnblogs.com/liumce/p/7746380.html
竟然有一万多的访问量,看来这个问题确实大家都经常遇见,再提出来整理以帮助到更多的人
一、出错
二、报错代码
1 十月 28, 2017 11:25:14 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin
2 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:DaiN' did not find a matching property.
3 十月 28, 2017 11:25:14 上午 org.apache.catalina.startup.VersionLoggerListener log
4 信息: Server version: Apache Tomcat/8.0.46
5 十月 28, 2017 11:25:14 上午 org.apache.catalina.startup.VersionLoggerListener log
6 信息: Server built: Aug 10 2017 10:10:31 UTC
7 十月 28, 2017 11:25:14 上午 org.apache.catalina.startup.VersionLoggerListener log
8 信息: Server number: 8.0.46.0
9 十月 28, 2017 11:25:14 上午 org.apache.catalina.startup.VersionLoggerListener log
10 信息: OS Name: Windows 10
11 十月 28, 2017 11:25:14 上午 org.apache.catalina.startup.VersionLoggerListener log
12 信息: OS Version: 10.0
13 十月 28, 2017 11:25:14 上午 org.apache.catalina.startup.VersionLoggerListener log
14 信息: Architecture: amd64
15 十月 28, 2017 11:25:14 上午 org.apache.catalina.startup.VersionLoggerListener log
16 信息: Java Home: D:\jdk8\jre
17 十月 28, 2017 11:25:14 上午 org.apache.catalina.startup.VersionLoggerListener log
18 信息: JVM Version: 1.8.0_141-b15
19 十月 28, 2017 11:25:14 上午 org.apache.catalina.startup.VersionLoggerListener log
20 信息: JVM Vendor: Oracle Corporation
21 十月 28, 2017 11:25:14 上午 org.apache.catalina.startup.VersionLoggerListener log
22 信息: CATALINA_BASE: F:\javaEE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
23 十月 28, 2017 11:25:14 上午 org.apache.catalina.startup.VersionLoggerListener log
24 信息: CATALINA_HOME: D:\apache-tomcat-8.0.46
25 十月 28, 2017 11:25:14 上午 org.apache.catalina.startup.VersionLoggerListener log
26 信息: Command line argument: -Dcatalina.base=F:\javaEE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
27 十月 28, 2017 11:25:14 上午 org.apache.catalina.startup.VersionLoggerListener log
28 信息: Command line argument: -Dcatalina.home=D:\apache-tomcat-8.0.46
29 十月 28, 2017 11:25:14 上午 org.apache.catalina.startup.VersionLoggerListener log
30 信息: Command line argument: -Dwtp.deploy=F:\javaEE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
31 十月 28, 2017 11:25:14 上午 org.apache.catalina.startup.VersionLoggerListener log
32 信息: Command line argument: -Djava.endorsed.dirs=D:\apache-tomcat-8.0.46\endorsed
33 十月 28, 2017 11:25:14 上午 org.apache.catalina.startup.VersionLoggerListener log
34 信息: Command line argument: -Dfile.encoding=UTF-8
35 十月 28, 2017 11:25:14 上午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
36 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\jdk8\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;D:/jdk8/bin/../jre/bin/server;D:/jdk8/bin/../jre/bin;D:/jdk8/bin/../jre/lib/amd64;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;D:\jdk8\bin;D:\jdk8\jre\bin;C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin;D:\Program Files\Git\cmd;D:\jdk8\bin;D:\jdk8\jre\bin;;D:\eclipse-jee-oxygen-R-win32-x86_64\eclipse;;.
37 十月 28, 2017 11:25:14 上午 org.apache.coyote.AbstractProtocol init
38 信息: Initializing ProtocolHandler ["http-nio-8080"]
39 十月 28, 2017 11:25:15 上午 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
40 信息: Using a shared selector for servlet write/read
41 十月 28, 2017 11:25:15 上午 org.apache.coyote.AbstractProtocol init
42 信息: Initializing ProtocolHandler ["ajp-nio-8009"]
43 十月 28, 2017 11:25:15 上午 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
44 信息: Using a shared selector for servlet write/read
45 十月 28, 2017 11:25:15 上午 org.apache.catalina.startup.Catalina load
46 信息: Initialization processed in 2863 ms
47 十月 28, 2017 11:25:15 上午 org.apache.catalina.core.StandardService startInternal
48 信息: Starting service Catalina
49 十月 28, 2017 11:25:15 上午 org.apache.catalina.core.StandardEngine startInternal
50 信息: Starting Servlet Engine: Apache Tomcat/8.0.46
51 十月 28, 2017 11:25:17 上午 org.apache.coyote.AbstractProtocol start
52 信息: Starting ProtocolHandler ["http-nio-8080"]
53 十月 28, 2017 11:25:17 上午 org.apache.coyote.AbstractProtocol start
54 信息: Starting ProtocolHandler ["ajp-nio-8009"]
55 十月 28, 2017 11:25:17 上午 org.apache.catalina.startup.Catalina start
56 信息: Server startup in 1383 ms
三、解决方法
结合百度以及技术博客解决文章都试过:
1. 删除 tomcat 服务器,再重新加载
2. 在web.xml 配置文件 找 有没有相同的 例如(<servlet-name>SendServlet</servlet-name> ) 或者 没有用过的servlet, 全部删掉。
3. 今天遇到的问题也是在 web.xml 配置文件里头
1 2 3 4 5 6 7 8 |
|
把helloServlet首字母 改成大写就好了
这三种办法试过过后重新运行 有一点点用,但是还是不能运行
4.
- 去掉类上面的@WebServlet("/HelloWorld")。在web.xml写<servlet-mapping>
- 在web.xml里不写 <servlet-mapping>,而要保留@WebServlet("/HelloWorld")。如下web.xml:
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
4
5 <display-name>HelloWorld</display-name>
6
7 <welcome-file-list>
8
9 <welcome-file>index.html</welcome-file>
10
11 </welcome-file-list>
12
13
14
15 <servlet>
16
17 <servlet-name>helloworld</servlet-name>
18
19 <servlet-class>HelloWorld</servlet-class>
20
21 </servlet>
22
23
24
25
26
27 </web-app>
我的是tomcat8.0 在web.xml 没有@WebServlet,所以 这里的第二个方法不管用~。。。。
5.我把server下面tomcat的那个项目删除掉。再start.就OK了。 (这是在论坛里对我有用最多的回答)
和第一个方法有点类似。。可以试试,把tomcat项目全部删了 再导进去重新运行看看能不能管用,或者换多个版本8.0 7.0 等试试 。
6.我的代码里面加了一句话:
<!-- 配置servlet的映射路径 -->
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
有可能是这个映射导致的原因
将注解去掉或者保留注解进入web.xml将映射删除。
如果报错,可能就是单词写错,反斜杠没有写 ,导包有错!
如果还有其他解决方法,请指正~