首先这个错也是报的无法理解。下面是控制台输出的完整的错误消息

20-May-2022 14:14:57.795 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal 一个或多个筛选器启动失败。完整的详细信息将在相应的容器日志文件中找到

20-May-2022 14:14:57.796 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal 由于之前的错误,Context[/qywx]启动失败

2022-05-20 14:14:57.817 |-INFO [RMI TCP Connection(3)-127.0.0.1] org.quartz.core.QuartzScheduler [613] -| Scheduler quartzScheduler_$_NON_CLUSTERED paused.

2022-05-20 14:14:57.819 |-INFO [RMI TCP Connection(3)-127.0.0.1] org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler [218] -| Shutting down ExecutorService 'taskScheduler'

2022-05-20 14:14:57.820 |-INFO [RMI TCP Connection(3)-127.0.0.1] org.springframework.scheduling.quartz.SchedulerFactoryBean [845] -| Shutting down Quartz Scheduler

2022-05-20 14:14:57.821 |-INFO [RMI TCP Connection(3)-127.0.0.1] org.quartz.core.QuartzScheduler [694] -| Scheduler quartzScheduler_$_NON_CLUSTERED shutting down.

2022-05-20 14:14:57.821 |-INFO [RMI TCP Connection(3)-127.0.0.1] org.quartz.core.QuartzScheduler [613] -| Scheduler quartzScheduler_$_NON_CLUSTERED paused.

2022-05-20 14:14:57.823 |-INFO [RMI TCP Connection(3)-127.0.0.1] org.quartz.core.QuartzScheduler [771] -| Scheduler quartzScheduler_$_NON_CLUSTERED shutdown complete.

2022-05-20 14:14:57.825 |-INFO [RMI TCP Connection(3)-127.0.0.1] org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor [218] -| Shutting down ExecutorService 'taskExecutor'

20-May-2022 14:14:57.915 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks web应用程序[qywx]创建了一个ThreadLocal,其键类型为[java.lang.ThreadLocal](值为[java.lang.ThreadLocal@a6ba]),值类型为[io.netty.util.internal.InternalThreadLocalMap](值为[io.netty.util.internal.InternalThreadLocalMap@3db34c1d),但在停止web应用程序时未能将其删除。线程将随着时间的推移而更新,以尝试避免可能的内存泄漏

[2022-05-20 02:14:57,933] Artifact qywx:war exploded: Error during artifact deployment. See server log for details.

20-May-2022 14:14:57.938 信息 [quartzScheduler_Worker-8] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此Web应用程序实例已停止。无法加载[ch.qos.logback.core.status.WarnStatus]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。

java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[ch.qos.logback.core.status.WarnStatus]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。

at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1435)

at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1423)

at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1262)

at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1223)

at ch.qos.logback.classic.LoggerContext.noAppenderDefinedWarning(LoggerContext.java:186)

at ch.qos.logback.classic.Logger.callAppenders(Logger.java:264)

at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:421)

at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)

at ch.qos.logback.classic.Logger.debug(Logger.java:482)

at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:612)

Exception in thread "quartzScheduler_Worker-8" java.lang.NoClassDefFoundError: ch/qos/logback/core/status/WarnStatus

at ch.qos.logback.classic.LoggerContext.noAppenderDefinedWarning(LoggerContext.java:186)

at ch.qos.logback.classic.Logger.callAppenders(Logger.java:264)

at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:421)

at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:383)

at ch.qos.logback.classic.Logger.debug(Logger.java:482)

at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:612)

Caused by: java.lang.ClassNotFoundException: 非法访问:此Web应用程序实例已停止。无法加载[ch.qos.logback.core.status.WarnStatus]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。

at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1425)

at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1262)

at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1223)

... 6 more

Caused by: java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[ch.qos.logback.core.status.WarnStatus]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。

at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1435)

at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1423)

... 8 more

日志文件输出的错误消息如下

Caused by: java.lang.IllegalStateException: Logback configuration error detected:

ERROR in ch.qos.logback.core.joran.action.AppenderAction - Could not create an Appender of type [org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender]. ch.qos.logback.core.util.DynamicClassLoadingException: Failed to instantiate type org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender

ERROR in ch.qos.logback.core.joran.spi.Interpreter@32:113 - ActionException in Action for tag [appender] ch.qos.logback.core.joran.spi.ActionException: ch.qos.logback.core.util.DynamicClassLoadingException: Failed to instantiate type org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender

ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - Could not find an appender named [grpc-log]. Did you define it below instead of above in the configuration file?

ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - See http://logback.qos.ch/codes.html#appender_order for more details.

at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:179)

at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithSpecificConfig(AbstractLoggingSystem.java:66)

at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:57)

at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:132)

at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:315)

... 65 common frames omitted

2022-04-24 20:19:00.174 ERROR [RMI TCP Connection(3)-127.0.0.1]org.springframework.boot.SpringApplication -Application run failed

java.lang.IllegalStateException: java.lang.IllegalStateException: Logback configuration error detected:

ERROR in ch.qos.logback.core.joran.action.AppenderAction - Could not create an Appender of type [org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender]. ch.qos.logback.core.util.DynamicClassLoadingException: Failed to instantiate type org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender

ERROR in ch.qos.logback.core.joran.spi.Interpreter@32:113 - ActionException in Action for tag [appender] ch.qos.logback.core.joran.spi.ActionException: ch.qos.logback.core.util.DynamicClassLoadingException: Failed to instantiate type org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender

ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - Could not find an appender named [grpc-log]. Did you define it below instead of above in the configuration file?

ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - See http://logback.qos.ch/codes.html#appender_order for more details.

at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:327)

at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:281)

at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:239)

at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:216)

at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)

at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)

at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)

at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131)

at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:82)

at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:63)

at java.util.ArrayList.forEach(ArrayList.java:1257)

at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:117)

at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:111)

at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:62)

at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:362)

at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)

at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:173)

at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:153)

at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:95)

at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:174)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5221)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:727)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695)

at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1775)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:291)

at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)

at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)

at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:483)

at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:431)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:291)

at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)

at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)

at com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468)

at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)

at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)

at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)

at java.security.AccessController.doPrivileged(Native Method)

at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408)

at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)

at sun.rmi.transport.Transport$1.run(Transport.java:200)

at sun.rmi.transport.Transport$1.run(Transport.java:197)

at java.security.AccessController.doPrivileged(Native Method)

at sun.rmi.transport.Transport.serviceCall(Transport.java:196)

at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)

at java.security.AccessController.doPrivileged(Native Method)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)

Caused by: java.lang.IllegalStateException: Logback configuration error detected:

ERROR in ch.qos.logback.core.joran.action.AppenderAction - Could not create an Appender of type [org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender]. ch.qos.logback.core.util.DynamicClassLoadingException: Failed to instantiate type org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender

ERROR in ch.qos.logback.core.joran.spi.Interpreter@32:113 - ActionException in Action for tag [appender] ch.qos.logback.core.joran.spi.ActionException: ch.qos.logback.core.util.DynamicClassLoadingException: Failed to instantiate type org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender

ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - Could not find an appender named [grpc-log]. Did you define it below instead of above in the configuration file?

ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - See http://logback.qos.ch/codes.html#appender_order for more details.

at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:179)

at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithSpecificConfig(AbstractLoggingSystem.java:66)

at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:57)

at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:132)

at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:315)

... 65 common frames omitted

---------解决方法,是程序添加的Filter这个类出问题了----------

给出正确filter配置文件

// 这是正确的filter类,启动没有异常

package cn.my.filter;

import javax.servlet.*;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

public class CrosFilter implements javax.servlet.Filter {

@Override

public void init(FilterConfig filterConfig) throws ServletException {

}

@Override

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

HttpServletResponse res = (HttpServletResponse)servletResponse;

// 允许所有域名跨域

res.addHeader("Access-Control-Allow-Origin","*");

res.setHeader("Access-Control-Allow-Credentials", "true");

res.addHeader("Access-Control-Allow-Methods","GET,POST,PUT,DELETE,OPTIONS");

res.setHeader("Access-Control-Max-Age", "3600");

res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Access-Control-Allow-Headers, Authorization");

filterChain.doFilter(servletRequest,servletResponse);

}

@Override

public void destroy() {

}

}

下面的是错误的,大家可以把错误的代码拿去试试。

// 错误的代码

// 错误的代码

// 错误的代码

package cn.my.filter;

import org.springframework.context.annotation.Configuration;

import javax.servlet.*;

import javax.servlet.annotation.WebFilter;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

@WebFilter(filterName = "CorsFilter ")

@Configuration

public class CrosFilter implements Filter {

@Override

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {

HttpServletResponse response = (HttpServletResponse) res;

response.setHeader("Access-Control-Allow-Origin","*");

response.setHeader("Access-Control-Allow-Credentials", "true");

response.setHeader("Access-Control-Allow-Methods", "POST, GET, PATCH, DELETE, PUT");

response.setHeader("Access-Control-Max-Age", "3600");

response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");

chain.doFilter(req, res);

}

}

只要把filter代码修改了,tomcat启动就没有任何问题。如果不改代码换机器环境,重启电脑,都是无法解决的。

文章链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。