Асинхронная обработка в JBoss 6 («Комета») - PullRequest
3 голосов
/ 15 апреля 2010

edit: помечен как tomcat / jboss, так как это может быть вопрос о Tomcat, встроенном в JBoss 6, а не о самом JBoss

У меня очень простой сервлет, который работает на Glassfish v3. Он использует Servlet 3.0 Asynchronous Processing. Вот упрощенная версия (которая ничего не делает):

@WebServlet(asyncSupported=true)
public class SimpleServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException, IOException {

        final AsyncContext ac = request.startAsync();
        ac.setTimeout(3000);
    }
}

На JBoss 6.0.0 Milestone 2 я получаю следующее исключение:

java.lang.IllegalStateException: The servlet or filters that are being used
          by this request do not support async operation
    at org.apache.catalina.connector.Request.startAsync(Request.java:3096)
    at org.apache.catalina.connector.Request.startAsync(Request.java:3090)
    at org.apache.catalina.connector.RequestFacade.startAsync(RequestFacade.java:990)
    at playcomet.SimpleServlet.doGet(SimpleServlet.java:18)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
    ...

Нужно ли делать что-то особенное, чтобы включить асинхронную обработку в JBoss 6? Или мне нужен дополнительный дескриптор развертывания? ...

1 Ответ

2 голосов
/ 04 октября 2010

Если у вас есть web.xml, развернутый с ... Просто уберите это. структура должна быть

test.war

  • WEB-INF /
  • WEB-INF / классы / *. Класс

  • WEB-INF / Lib / *. Баночка


Ваш web.xml переопределяет asyncSupported = true аннотацию и, следовательно, ошибку

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