Сервлет 3.0 или Glassfish выдают? Веб-приложение игнорирует asyncSupported для фильтра в аннотации - PullRequest
2 голосов
/ 22 февраля 2012

Я добавил фильтр в свое веб-приложение (которое уже поддерживает асинхронные операции) и забыл вставить правильную аннотацию в фильтр, чтобы сохранить асинхронную поддержку. Легко решить проблему. Я поместил следующую аннотацию в класс фильтра, которая в итоге выглядит следующим образом:

@WebFilter(asyncSupported=true)
public class MainFilter implements Filter
{

   ...

}

Однако после повторного развертывания асинхронные операции остались без поддержки, что выдает мне эту ошибку:

Запрос входит в объем фильтра или сервлета, который не поддержка асинхронных операций

Мне удалось устранить проблему, удалив аннотацию и поместив ее эквивалент в web.xml:

<filter>
    <filter-name>MainFilter</filter-name>
    <filter-class>com.MyWebApp.Filters.MainFilter</filter-class>
    <async-supported>true</async-supported>
</filter>

Что меня смущает, так это то, что контейнер, похоже, учитывает аннотацию asyncSupported в файлах сервлета, но не для фильтров. Есть ли конкретная причина, почему это ошибка GlassFish 3.0?

...