问题描述:本地可以正常访问,线上tomcat也能正常启动,但是线上接口出现404,webapps下的图片也能访问
注:什么路径,项目名这些问题导致404可自行百度其他人解答
解决办法:
1.在tomcat的bin目录下以Catalina启动tomcat 使用 ./catalina.sh run 命令可查看tomcate启动日志 查看报错原因
2.本人报错原因是 什么log4j.....导致的(如下图)
而且在Catalina启动日志里出现org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].Standard和如下错误;
java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.impl.Log4jLoggerFactory loaded from file:/usr/local/java/tomcat/apache-tomcat-8.5.39/webapps/analyst/WEB-INF/lib/slf4j-log4j12-1.7.25.jar). If you are using WebLogic you will need to add 'org.slf4j' to prefer-application-packages in WEB-INF/weblogic.xml: org.slf4j.impl.Log4jLoggerFactory 翻译过来:. lang。IllegalArgumentException: LoggerFactory不是Logback LoggerContext,但Logback在类路径上。要么删除注销,要么删除竞争实现(类org. slf4j.p impl)。Log4jLoggerFactory从文件加载:/usr/local/java/tomcat/apache-tomcat-8.5.39/webapps/analyst/WEB-INF/lib/slf4j-log4j12-1.7.25.jar)。如果你使用WebLogic,你需要添加'org。在WEB-INF/weblogic中的首选应用程序包。xml: org.slf4j.impl。Log4jLoggerFactory org.apache.catalina。1.首先,有可能是jar包冲突,注释pom.xml文件里的log依赖
2.然后修改catalina.properties文件,忽略tomcat启动时扫描jar包,重新打包上传即可。 tomcat8.0: 打开在tomcat的conf目录里面catalina.properties的文件, tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\ 改为tomcat.util.scan.DefaultJarScanner.jarsToSkip=\,*
tomcat8.5: 打开在tomcat的conf目录里面catalina.properties的文件, tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\ 改为tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\,*
3.也有可能是插件问题,pom文件也可试试,
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--<groupId>org.apache.maven.plugins</groupId>--> <!--<artifactId>maven-compiler-plugin</artifactId>--> <!--<configuration>--> <!--<source>1.8</source>--> <!--<target>1.8</target>--> <!--</configuration>--> </plugin> </plugins> <!--//war包名字--> <finalName>analyst</finalName> </build>