Использовать фильтр из области тестирования в web.xml

У меня есть проект, который используется в качестве базы для ряда различных веб-приложений. Я пытаюсь запустить его в «тестовом» режиме с помощью плагина jetty-maven.

Проект представляет собой многомодульный проект. Фильтр находится в другом модуле, который является зависимостью от модуля, который я пытаюсь запустить, и указывается следующим образом:

<dependency>
    <groupId>my.example.test</groupId>
    <artifactId>test</artifactId>
    <version>X.X.X</version>
    <scope>test</scope>
</dependency>

Затем класс фильтра из этой зависимости добавляется как фильтр в web.xml:

<filter>
    <filter-name>test</filter-name>
    <filter-class>my.example.test.test.TestFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>test</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Наконец, проект запускается через вызов плагина jetty-maven (mvn jetty:run-forked), который настроен следующим образом:

<plugin>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>9.2.2.v20140723</version>
    <configuration>
        <webApp>
            <contextPath>/test</contextPath>
            <descriptor>src/test/webapp/WEB-INF/web.xml</descriptor>
        </webApp>
        <useTestScope>true</useTestScope>
        <jvmArgs>some arguments</jvmArgs>
        <jettyXml>jetty.xml,jetty-ssl.xml,jetty-https.xml</jettyXml>
        <stopKey>stopJetty</stopKey>
        <stopPort>12345</stopPort>
    </configuration>
</plugin>

Проект запускается и отображает файл index.html, но фильтр никогда не применяется ни к одному запросу. Можно ли запустить приложение тестовой области так, как я его настроил? Что еще я мог упустить?


person Celos    schedule 06.10.2014    source источник


Ответы (1)


Если сервер запустился, без ошибки, значит фильтр был.

Возможно, вы могли бы добавить ведение журнала к фильтру init() или doFilter(), чтобы убедиться, что он действительно запущен.

Кроме того, если вы используете javax.websocket, то эти запросы на обновление HTTP/1.1 WebSocket не будут фильтроваться.

person Joakim Erdfelt    schedule 06.10.2014
comment
Кажется, что ни один метод не вызывается. Никаких вебсокетов. - person Celos; 06.10.2014