問題:bi編程jsp servlet 第一個程序: HelloServlet 運行錯誤 404:


報錯信息:
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 配置文件里頭
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>cn.liumce.servlet.helloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
把helloServlet首字母 改成大寫就好了
這三種辦法試過過后重新運行 有一點點用,但是還是不能運行 (我個人)
二、
1.去掉類上面的@WebServlet("/HelloWorld")。在web.xml寫<servlet-mapping>
2.在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,所以 這里的第二個方法不管用~。。。。
三、
我把server下面tomcat的那個項目刪除掉。再start.就OK了。 (這是在論壇里對我有用最多的回答)
和第一個方法有點類似。。可以試試,把tomcat項目全部刪了 再導進去重新運行看看能不能管用,或者換多個版本8.0 7.0 等試試
四、
我的代碼里面加了一句話:
<!-- 配置servlet的映射路徑 -->
<servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>
有可能是這個映射導致的原因
將注解去掉或者保留注解進入web.xml將映射刪除。
如果再報錯,可能就是單詞寫錯,反斜杠沒有寫 ,導包有錯!

