Java 如何解析WebappClassLoaderBase
当我启动服务器时,它正在启动,但我遇到了错误。因此无法执行API调用。这些是错误。Java 如何解析WebappClassLoaderBase,java,mongodb,apache,Java,Mongodb,Apache,当我启动服务器时,它正在启动,但我遇到了错误。因此无法执行API调用。这些是错误。 Jul 18, 2018 11:05:36 PM com.mongodb.ServerMonitor$ServerMonitorRunnable run WARNING: Exception in monitor thread during notification of server state change java.lang.NoClassDefFoundError: com/mongodb/ChangeE
Jul 18, 2018 11:05:36 PM com.mongodb.ServerMonitor$ServerMonitorRunnable run
WARNING: Exception in monitor thread during notification of server state change
java.lang.NoClassDefFoundError: com/mongodb/ChangeEvent
at com.mongodb.ServerMonitor$ServerMonitorRunnable.sendStateChangedEvent(ServerMonitor.java:136)
at com.mongodb.ServerMonitor$ServerMonitorRunnable.run(ServerMonitor.java:119)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: Illegal access: this web application instance has been stopped already. Could not load [com.mongodb.ChangeEvent]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1362)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1219)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)
... 3 more
Caused by: java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [com.mongodb.ChangeEvent]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1372)
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1360)
... 5 more
Jul 18, 2018 11:05:36 PM org.apache.catalina.loader.WebappClassLoaderBase checkStateForResourceLoading
INFO: Illegal access: this web application instance has been stopped already. Could not load [java.util.concurrent.locks.Condition]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [java.util.concurrent.locks.Condition]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1372)
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1360)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1219)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)
at com.mongodb.ServerMonitor$ServerMonitorRunnable.waitForSignalOrTimeout(ServerMonitor.java:177)
at com.mongodb.ServerMonitor$ServerMonitorRunnable.waitForNext(ServerMonitor.java:158)
at com.mongodb.ServerMonitor$ServerMonitorRunnable.run(ServerMonitor.java:124)
at java.lang.Thread.run(Unknown Source)
Exception in thread "cluster-2-34.214.191.171:27017" java.lang.NoClassDefFoundError: java/util/concurrent/locks/Condition
at com.mongodb.ServerMonitor$ServerMonitorRunnable.waitForSignalOrTimeout(ServerMonitor.java:177)
at com.mongodb.ServerMonitor$ServerMonitorRunnable.waitForNext(ServerMonitor.java:158)
at com.mongodb.ServerMonitor$ServerMonitorRunnable.run(ServerMonitor.java:124)
at java.lang.Thread.run(Unknown Source)
显然,您的项目没有正确打包。
请检查您的webapps/ROOT/WEB-INF/lib文件夹(位于tomcat目录下),查看您的依赖项是否已被复制。此类存在问题
@组件
公共类API身份验证实现过滤器
用于API身份验证
。在该类中有一个名为:
@覆盖
public void doFilter(ServletRequest ServletRequest,ServletResponse response,
FilterChain链)抛出IOException、ServletException
这是在验证api
并在请求头中预期令牌/身份验证。
这里的doFilter
方法也验证基本URL的API并给出响应401
。tomcat没有任何问题
最后,我将一个条件放在doFilter
方法中,如果它是baseurl/openurl
,那么这些api将不会进行验证
本地计算机的我的基本URL:http://localhost:8080/projects/
问题解决了!!!:) 你所说的基本URL是什么意思?您能确认吗?基本URL可以是:/
或,http://localhost:8080/
或,https://domainName.com/
。这是tomcat在启动后端服务器时采用的默认设置。