Я впервые пытаюсь запустить свое веб-приложение на AWS Elastic Beanstalk (платформа: Tomcat 8 с Java 8, работающей на 64-битной Amazon Linux / 3.0.0).
Успешно создаетсяприложение в beanstalk, но когда оно пытается запустить мое приложение (загруженное с войной), оно выдает ошибку:
04-Jun-2018 20:44:02.060 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.filterStart Exception starting filter SecurePathFilter
java.lang.AbstractMethodError
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:285)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:266)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4708)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5348)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1126)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1868)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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)
SecurePathFilter является классом javax.servlet.Filter, поэтому я думаю, что это может бытьjar и сервлет jar api отсутствуют на tomcat (или, возможно, какой-то другой версии того, что я использовал локально), но как я могу это проверить?И как я могу добавить / изменить их?
Редактировать: По запросу соответствующие части моего web.xml:
<filter>
<filter-name>SecurePathFilter</filter-name>
<filter-class>be.qsds.sade.filters.SecurePathFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SecurePathFilter</filter-name>
<url-pattern>/secure/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
и мой класс SecurePathFilter примерно:
public class SecurePathFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
...
filterChain.doFilter(request, response);
}
}