- 在本地启动正常的包,打成war包,放在tomcat中启动,catalina.out显示已经启动,但是访问网址,在localhost.XXX.log中出现了错误:
下面是出现错误的log日志(部分)
07-Dec-2021 09:59:07.626 信息 [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath
07-Dec-2021 09:59:20.328 信息 [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log Initializing Spring FrameworkServlet ‘spring-mvc’
07-Dec-2021 09:59:38.980 严重 [http-nio-8088-exec-2] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [spring-mvc] in context with path [] threw exception [Filter execution threw an exception] with root cause
java.lang.IllegalStateException: org.slf4j.LoggerFactory could not be successfully initialized. See also http://www.slf4j.org/codes.html#unsuccessfulInit
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:303)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:269)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:281)
at net.sf.ehcache.CacheManager.(CacheManager.java:127)
at org.jangod.iweb.core.plugin.cache.ehcache.EhCacheProvider.start(EhCacheProvider.java:97)
at org.jangod.iweb.util.cache.CacheFactory.initCacheProvider(CacheFactory.java:38)
at org.jangod.iweb.util.cache.channel.NoneChannel.start(NoneChannel.java:27)
at org.jangod.iweb.util.CacheManager.(CacheManager.java:56)
at org.jangod.iweb.http.adapter.HttpAdapter.checkLogin(HttpAdapter.java:325)
at org.jangod.iweb.http.adapter.HttpAdapter.doLogin(HttpAdapter.java:348)
at org.jangod.iweb.http.adapter.HttpAdapter.doLogin(HttpAdapter.java:337)
at org.jangod.iweb.ext.servlet.IWebFilter.doFilter(IWebFilter.java:72)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:85)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol C o n n e c t i o n H a n d l e r . p r o c e s s ( A b s t r a c t P r o t o c o l . j a v a : 808 ) a t o r g . a p a c h e . t o m c a t . u t i l . n e t . N i o E n d p o i n t ConnectionHandler.process(AbstractProtocol.java:808) at org.apache.tomcat.util.net.NioEndpoint ConnectionHandler.process(AbstractProtocol.java:808)atorg.apache.tomcat.util.net.NioEndpointSocketProcessor.doRun(NioEndpoint.java:1498)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor W o r k e r . r u n ( T h r e a d P o o l E x e c u t o r . j a v a : 617 ) a t o r g . a p a c h e . t o m c a t . u t i l . t h r e a d s . T a s k T h r e a d Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread Worker.run(ThreadPoolExecutor.java:617)atorg.apache.tomcat.util.threads.TaskThreadWrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
07-Dec-2021 09:59:41.540 严重 [http-nio-8088-exec-1] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [spring-mvc] in context with path [] threw exception [Filter execution threw an exception] with root cause
java.lang.NoClassDefFoundError: Could not initialize class org.jangod.iweb.util.CacheManager
at org.jangod.iweb.http.adapter.HttpAdapter.checkLogin(HttpAdapter.java:325)
at org.jangod.iweb.http.adapter.HttpAdapter.doLogin(HttpAdapter.java:348)
at org.jangod.iweb.http.adapter.HttpAdapter.doLogin(HttpAdapter.java:337)
at org.jangod.iweb.ext.servlet.IWebFilter.doFilter(IWebFilter.java:72)
大概的意思就是slf4j没有完成初始化
- 问题追踪–> 查看本地代码 在本地代码启动的时候,恰巧出现爆红:
SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found
binding in
[jar:file:/D:/Work/2021/Dev/vmtools/maven-repository-vm/org/slf4j/slf4j-log4j12/1.7.2/slf4j-log4j12-1.7.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/D:/Work/2021/Dev/vmtools/maven-repository-vm/org/slf4j/slf4j-jdk14/1.4.3/slf4j-jdk14-1.4.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
explanation. SLF4J: Actual binding is of type
[org.slf4j.impl.Log4jLoggerFactory]
(这里注意,代码爆红,有时候虽然不影响使用,或许是idea帮你忽略了些东西,但是反应到最真实的jar包或者war包,在他们启动时,往往会出现错误)
简单搜了下,说是依赖冲突 : slf4j-log4j12 和slf4j-jdk14 两者需要去掉一个
3.问题解决:
idea点击这个
然后会弹出下边这样的结构
点击这两根线
跳转到相应的pom文件中的依赖配置
我们只要在pom.xml 里排除这个即可。
<dependency>
<groupId>com.artofsolving</groupId>
<artifactId>jodconverter-maven-plugin</artifactId>
<version>2.2.1</version>
<!--排除这个slf4j-jdk14-->
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
</exclusion>
</exclusions>
</dependency>
ok 这样就将问题解决了