我用網上的專案還有自己的專案實驗了n次發現后臺無法接受請求并回應,永遠是404,可以保證專案代碼沒問題,現在問題定位到tomcat和web.xml組態檔上。
tomcat啟動沒有warning,error,這是tomcat localhost log:

啟動是成功的,日志如下:
"D:\Program Files\Java\apache-tomcat-9.0.30\bin\catalina.bat" run
Using CATALINA_BASE: "C:\Users\Pluto\.IntelliJIdea2019.3\system\tomcat\Unnamed_governmentPublic-SpringMVC-test"
Using CATALINA_HOME: "D:\Program Files\Java\apache-tomcat-9.0.30"
Using CATALINA_TMPDIR: "D:\Program Files\Java\apache-tomcat-9.0.30\temp"
Using JRE_HOME: "D:\Program Files\Java\graalvm-ce-19.2.1"
Using CLASSPATH: "D:\Program Files\Java\apache-tomcat-9.0.30\bin\bootstrap.jar;D:\Program Files\Java\apache-tomcat-9.0.30\bin\tomcat-juli.jar"
[2020-04-08 12:35:58,093] Artifact governmentPublic-SpringMVC-test:war exploded: Waiting for server connection to start artifact deployment...
08-Apr-2020 12:35:59.682 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服務器版本: Apache Tomcat/9.0.30
08-Apr-2020 12:35:59.688 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log 服務器構建: Dec 7 2019 16:42:04 UTC
08-Apr-2020 12:35:59.688 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log 服務器版本號(:9.0.30.0
08-Apr-2020 12:35:59.688 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 10
08-Apr-2020 12:35:59.688 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0
08-Apr-2020 12:35:59.688 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log 架構: amd64
08-Apr-2020 12:35:59.688 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 環境變數: D:\Program Files\Java\graalvm-ce-19.2.1\jre
08-Apr-2020 12:35:59.689 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM 版本: 1.8.0_232-20191009144847.buildslave.jdk8u-src-tar--b07
08-Apr-2020 12:35:59.689 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供應商: Oracle Corporation
08-Apr-2020 12:35:59.689 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\Users\Pluto\.IntelliJIdea2019.3\system\tomcat\Unnamed_governmentPublic-SpringMVC-test
08-Apr-2020 12:35:59.689 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: D:\Program Files\Java\apache-tomcat-9.0.30
08-Apr-2020 12:35:59.690 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\Users\Pluto\.IntelliJIdea2019.3\system\tomcat\Unnamed_governmentPublic-SpringMVC-test\conf\logging.properties
08-Apr-2020 12:35:59.690 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
08-Apr-2020 12:35:59.690 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dfile.encoding=UTF-8
08-Apr-2020 12:35:59.690 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote=
08-Apr-2020 12:35:59.691 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099
08-Apr-2020 12:35:59.691 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
08-Apr-2020 12:35:59.691 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.password.file=C:\Users\Pluto\.IntelliJIdea2019.3\system\tomcat\Unnamed_governmentPublic-SpringMVC-test\jmxremote.password
08-Apr-2020 12:35:59.691 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.access.file=C:\Users\Pluto\.IntelliJIdea2019.3\system\tomcat\Unnamed_governmentPublic-SpringMVC-test\jmxremote.access
08-Apr-2020 12:35:59.691 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1
08-Apr-2020 12:35:59.691 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
08-Apr-2020 12:35:59.691 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
08-Apr-2020 12:35:59.692 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
08-Apr-2020 12:35:59.692 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Users\Pluto\.IntelliJIdea2019.3\system\tomcat\Unnamed_governmentPublic-SpringMVC-test
08-Apr-2020 12:35:59.692 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=D:\Program Files\Java\apache-tomcat-9.0.30
08-Apr-2020 12:35:59.694 資訊 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=D:\Program Files\Java\apache-tomcat-9.0.30\temp
08-Apr-2020 12:35:59.694 資訊 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.23] using APR version [1.7.0].
08-Apr-2020 12:35:59.694 資訊 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
08-Apr-2020 12:35:59.694 資訊 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true]
08-Apr-2020 12:35:59.700 資訊 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1c 28 May 2019]
08-Apr-2020 12:36:00.274 資訊 [main] org.apache.coyote.AbstractProtocol.init 初始化協議處理器 ["http-nio-8080"]
08-Apr-2020 12:36:00.337 資訊 [main] org.apache.coyote.AbstractProtocol.init 初始化協議處理器 ["ajp-nio-8009"]
08-Apr-2020 12:36:00.341 資訊 [main] org.apache.catalina.startup.Catalina.load 服務器在[1,146]毫秒內初始化
08-Apr-2020 12:36:00.387 資訊 [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
08-Apr-2020 12:36:00.387 資訊 [main] org.apache.catalina.core.StandardEngine.startInternal 正在啟動 Servlet 引擎:[Apache Tomcat/9.0.30]
08-Apr-2020 12:36:00.404 資訊 [main] org.apache.coyote.AbstractProtocol.start 開始協議處理句柄["http-nio-8080"]
08-Apr-2020 12:36:00.418 資訊 [main] org.apache.coyote.AbstractProtocol.start 開始協議處理句柄["ajp-nio-8009"]
08-Apr-2020 12:36:00.422 資訊 [main] org.apache.catalina.startup.Catalina.start Server startup in [80] milliseconds
Connected to server
[2020-04-08 12:36:00,847] Artifact governmentPublic-SpringMVC-test:war exploded: Artifact is being deployed, please wait...
08-Apr-2020 12:36:05.841 資訊 [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一個JAR被掃描用于TLD但尚未包含TLD。 為此記錄器啟用除錯日志記錄,以獲取已掃描但未在其中找到TLD的完整JAR串列。 在掃描期間跳過不需要的JAR可以縮短啟動時間和JSP編譯時間。
12:36:07.211 [RMI TCP Connection(3)-127.0.0.1] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization started
12:36:09.880 [RMI TCP Connection(3)-127.0.0.1] INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext initialized in 2639 ms
12:36:09.980 [RMI TCP Connection(3)-127.0.0.1] INFO org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcher'
08-Apr-2020 12:36:10.432 資訊 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory 把web 應用程式部署到目錄 [D:\Program Files\Java\apache-tomcat-9.0.30\webapps\manager]
08-Apr-2020 12:36:10.566 資訊 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [D:\Program Files\Java\apache-tomcat-9.0.30\webapps\manager] has finished in [134] ms
12:36:10.944 [RMI TCP Connection(3)-127.0.0.1] INFO org.springframework.web.servlet.DispatcherServlet - Completed initialization in 963 ms
[2020-04-08 12:36:10,960] Artifact governmentPublic-SpringMVC-test:war exploded: Artifact is deployed successfully
[2020-04-08 12:36:10,961] Artifact governmentPublic-SpringMVC-test:war exploded: Deploy took 10,114 milliseconds
log4j沒問題由于篇幅有限就不放進來了,web.xml關鍵部分配置如下:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/WEB-INF/dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
專案結構以及專案默認目錄如下:

web目錄為“/”,啟動tomcat在地址欄輸入正確的url
是可以訪問檔案的,并且web.xml中的applicationContext.xml/dispatcher-servlet.xml,可以用Crtl+B直接訪問到組態檔,三個組態檔都沒有error和warning
但是后臺沒辦法對請求回應,接受不到前臺任何資料,然后永遠在發完請求后跳轉到404,無論get,post,是用form標簽還是ajax都是這樣
問題暫時定位到tomcat log里的No Spring WebApplicationInitializer types detected on classpath,這個咋解決啊
uj5u.com熱心網友回復:
提示不是很明顯嗎,在類路徑下找不到Sring配置資訊,按你的配置,系統找的是路徑是src/main/resources/WEB-INF/,這個路徑有Spring,SpringMVC組態檔嗎uj5u.com熱心網友回復:
但是我配置的是web路徑為/,/WEB-INF/applicationContext.xml不應該在web目錄下嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/95982.html
標籤:Web 開發
上一篇:請問一下為什么這個String型別轉不到int型別呢
下一篇:SSH框架如何實作分頁
