Я виноват в том, что не знал, что у меня были включены автообновления на одном из наших производственных серверов Ubuntu, работающих под управлением 18.04.2 в AWS.Tomcat был недавно обновлен до 8.5.39 (автоматически), и когда мы перезапускаем tomcat8, наш код не может быть развернут со следующим исключением:
Caused by: java.lang.IllegalStateException: Attribute 'javax.websocket.server.ServerContainer' not found in ServletContext at org.springframework.util.Assert.state(Assert.java:73)
Когда я включаю отладочные сообщения, связанные с безопасностью, в tomcat, я вижуследующее:
policy: evaluate codesources:
Policy CodeSource: (file:/usr/lib/jvm/java-8-oracle/jre/lib/ext/* <no signer certificates>)
Active CodeSource: (file:/var/lib/tomcat8/webapps/api/WEB-INF/lib/spring-retry-1.2.2.RELEASE.jar <no signer certificates>)
policy: evaluation (codesource) failed
policy: evaluate codesources:
Policy CodeSource: (file:/usr/java/packages/lib/ext/* <no signer certificates>)
Active CodeSource: (file:/var/lib/tomcat8/webapps/api/WEB-INF/lib/spring-retry-1.2.2.RELEASE.jar <no signer certificates>)
policy: evaluation (codesource) failed
policy: evaluate codesources:
Policy CodeSource: (null <no signer certificates>)
Active CodeSource: (file:/var/lib/tomcat8/webapps/api/WEB-INF/lib/spring-retry-1.2.2.RELEASE.jar <no signer certificates>)
policy: evaluate principals:
Policy Principals: []
Active Principals: []
Я не знаю, связаны ли они ... что нам нужно сделать, чтобы веб-сокет был "видимым" для Spring?Я не знаю версию tomcat, которая работала на этом сервере до этого обновления, но мы никогда не получали исключение для javax.websocket.server.ServerContainer
, который не был запущен с этой версией tomcat.Можно ли отключить какие-либо проверки безопасности Tomcat?