java 运行war_javaweb项目在Eclipse中启动Tomcat后运行正常,但是打成war包启动后运行异常的问题?...

一个使用SSM+redis+shiro框架的Java Web项目,在Eclipse中通过Tomcat启动正常,但打包为war文件后,虽然Tomcat启动无误,但所有与后端相关的请求返回404错误。已排除日志和环境配置问题,问题可能涉及部署配置或资源路径问题。
摘要由CSDN通过智能技术生成

项目框架

SSM+redis+shiro

问题描述

Eclipse中启动项目

从“Start the server”启动,项目运行一切正常

567fad9a75b9f67a2308c86b4931d05e.png

war包启动

项目打包,将war包放入本地Tomcat下/webapps目录,运行bin/startup.bat,命令行窗口显示启动成功,且无任何报错信息,日志文件也无任何报错。浏览器访问localhost:8005/项目名,页面前端文件拉取正常,但和后端相关的请求全部404报错

104d9dafdc906e326bc4fab58f2aa3f3.png

447ac4997db176c7cb1b49396c692883.png

如:网站图标favicon.ico以及尝试进行登录操作(URI:/login),皆返回404错误

catalina.2019-11-24.log日志

24-Nov-2019 20:19:35.269 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.5.30

24-Nov-2019 20:19:35.272 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Apr 3 2018 20:04:09 UTC

24-Nov-2019 20:19:35.272 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.5.30.0

24-Nov-2019 20:19:35.272 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 7

24-Nov-2019 20:19:35.272 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 6.1

24-Nov-2019 20:19:35.273 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64

24-Nov-2019 20:19:35.273 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: C:\Program Files\Java\jdk1.8.0_60\jre

24-Nov-2019 20:19:35.273 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_60-b27

24-Nov-2019 20:19:35.273 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation

24-Nov-2019 20:19:35.274 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\apache-tomcat-8.5.30

24-Nov-2019 20:19:35.274 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\apache-tomcat-8.5.30

24-Nov-2019 20:19:35.274 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\apache-tomcat-8.5.30\conf\logging.properties

24-Nov-2019 20:19:35.274 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

24-Nov-2019 20:19:35.274 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048

24-Nov-2019 20:19:35.274 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources

24-Nov-2019 20:19:35.274 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=

24-Nov-2019 20:19:35.275 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\apache-tomcat-8.5.30

24-Nov-2019 20:19:35.275 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=C:\apache-tomcat-8.5.30

24-Nov-2019 20:19:35.275 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=C:\apache-tomcat-8.5.30\temp

24-Nov-2019 20:19:35.275 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.16] using APR version [1.6.3].

24-Nov-2019 20:19:35.276 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

24-Nov-2019 20:19:35.276 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]

24-Nov-2019 20:19:35.807 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.0.2m 2 Nov 2017]

24-Nov-2019 20:19:35.891 信息 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8005"]

24-Nov-2019 20:19:35.943 信息 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read

24-Nov-2019 20:19:35.947 信息 [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8011"]

24-Nov-2019 20:19:35.954 信息 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read

24-Nov-2019 20:19:35.957 信息 [main] org.apache.catalina.startup.Catalina.load Initialization processed in 935 ms

24-Nov-2019 20:19:35.975 信息 [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]

24-Nov-2019 20:19:35.975 信息 [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.30

24-Nov-2019 20:19:36.195 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [C:\apache-tomcat-8.5.30\webapps\ReportOA-0.0.1-SNAPSHOT.war]

24-Nov-2019 20:19:36.282 警告 [localhost-startStop-1] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [4.0]. Default version will be used.

24-Nov-2019 20:19:38.839 信息 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.

24-Nov-2019 20:19:44.646 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [C:\apache-tomcat-8.5.30\webapps\ReportOA-0.0.1-SNAPSHOT.war] has finished in [8,451] ms

24-Nov-2019 20:19:44.648 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-8.5.30\webapps\docs]

24-Nov-2019 20:19:44.681 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-8.5.30\webapps\docs] has finished in [33] ms

24-Nov-2019 20:19:44.683 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-8.5.30\webapps\examples]

24-Nov-2019 20:19:44.980 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-8.5.30\webapps\examples] has finished in [297] ms

24-Nov-2019 20:19:45.003 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-8.5.30\webapps\host-manager]

24-Nov-2019 20:19:45.019 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-8.5.30\webapps\host-manager] has finished in [17] ms

24-Nov-2019 20:19:45.019 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [C:\apache-tomcat-8.5.30\webapps\manager]

24-Nov-2019 20:19:45.033 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [C:\apache-tomcat-8.5.30\webapps\manager] has finished in [14] ms

24-Nov-2019 20:19:45.042 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8005"]

24-Nov-2019 20:19:45.060 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8011"]

24-Nov-2019 20:19:45.078 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 9121 ms

附一张刷新网页后命令行窗口截图:

320178bf91fef98a9e057c709e7008dd.png

该问题一般由哪些情况产生?我该向哪个方向去寻找解决办法?

Java Web项目,打WAR(Web Application Archive)文件是一种常见的部署方式,它将应用程序的所有组件打为一个文件,便于部署到Web服务器上运行。以下是打WAR的基本步骤: 1. **项目结构准备**:确保你的Java Web项目结构符合Servlet规范的要求,一般括`WEB-INF`目录,该目录下应含`web.xml`文件(描述Web应用配置的部署描述符),以及`classes`文件夹(存放编译后的.class字节码文件)和`lib`文件夹(存放依赖的JAR)。 2. **配置web.xml**:在`WEB-INF`目录下编写或更新`web.xml`文件,配置Servlet、Listener、Filter等Web组件的声明和映射。 3. **选择构建工具**:使用Maven或Gradle等构建工具可以帮助自动化打过程。在项目的`pom.xml`或`build.gradle`文件配置正确的打方式为`war`。 4. **Maven打步骤**: - 在`pom.xml`配置`<packaging>`标签为`war`。 - 使用`mvn clean package`命令,Maven会编译项目运行测试、打WAR文件。 - 打完成后,WAR文件通常位于`target`目录下。 5. **Gradle打步骤**: - 在`build.gradle`文件添加`war`配置到`plugins`块。 - 使用`gradle clean build`命令进行构建,构建完成后WAR文件将位于`build/libs`目录。 6. **手动打**: - 如果不使用构建工具,可以在集成开发环境(IDE)进行手动打。 - 在Eclipse,可以选择项目,右键点击,选择Export -> WAR file。 - 在IntelliJ IDEA,可以通过Build -> Build Artifacts ->WAR来打。 完成上述步骤后,你将得到一个WAR文件,可以部署到Tomcat、Jetty等Web服务器上运行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值