Фильтр AWS Tomcat on Elastic Beanstalk - PullRequest
0 голосов
/ 05 июня 2018

Я впервые пытаюсь запустить свое веб-приложение на 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);
    }
}

1 Ответ

0 голосов
/ 05 июня 2018

@ jontro привел меня в правильном направлении решения моей проблемы.Я создавал свое приложение локально с последней версией javax.servlet-api (4.0.1), где Tomcat8.5, автоматически развернутый на AWS, использует более старую версию (3.1.0).

Я изменилверсия в моем pom, добавил некоторые недостающие методы, перестроил и загрузил мою войну и eureka!

Спасибо за руководство!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...