最近工作中,遇到了一个问题,spring boot部署war包的过程中启动时在实现了Filter的filter类中出现以下异常信息,导致tomcat启动失败:
21-06-07.13:47:22.234 [localhost-startStop-1] ERROR [/] - Exception starting filter loginSSOInterceptor
javax.naming.NameNotFoundException: Name [com.jt.ap.boot.filter.LoginSSOInterceptor/userApi] is not bound in this Context. Unable to find [com.jt.ap.boot.filter.LoginSSOInterceptor].
at org.apache.naming.NamingContext.lookup(NamingContext.java:824)
at org.apache.naming.NamingContext.lookup(NamingContext.java:172)
at org.apache.catalina.core.DefaultInstanceManager.lookupFieldResource(DefaultInstanceManager.java:587)
at org.apache.catalina.core.DefaultInstanceManager.processAnnotations(DefaultInstanceManager.java:487)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:174)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:166)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:111)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4747)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5389)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase
S
t
a
r
t
C
h
i
l
d
.
c
a
l
l
(
C
o
n
t
a
i
n
e
r
B
a
s
e
.
j
a
v
a
:
1410
)
a
t
o
r
g
.
a
p
a
c
h
e
.
c
a
t
a
l
i
n
a
.
c
o
r
e
.
C
o
n
t
a
i
n
e
r
B
a
s
e
StartChild.call(ContainerBase.java:1410) at org.apache.catalina.core.ContainerBase
StartChild.call(ContainerBase.java:1410)atorg.apache.catalina.core.ContainerBaseStartChild.call(ContainerBase.java:1400)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at com.alibaba.mtc.MtContextRunnable.run(MtContextRunnable.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
在网上找了很多答案,一直都没有解决,比如:
1、tomcat的web.xml配置缺东西
2、context.xml数据源缺少配置等等都不能解决
最后在国外网站一位大神说,可能是用了Resource的原因,改成Autowired就能解决,改了之后解决了,具体原因也没在追究。