Como obter o trabalho Vaadin Push através do servidor HTTP Apache?

Estou tentando obter o Vaadin 7.1.5 Push para trabalhar no Apache Tomcat 7.0.42 + servidor HTTP Apache (2.2.14 com mod_proxy_wstunnel).

O aplicativo Vaadin e o push com WebSocket funcionam bem quando eu acesso o Tomcat diretamente (ou seja,http://mydomain:8080/myapp). O problema surge quando tento acessá-lo usando os módulos do Apache mod_proxy & mod_proxy_wstunnel. O que acontece é que o aplicativo trava, o indicador de carga fica vermelho e eu recebo esse erro na solicitação de envio no console do navegador:

HTTP Status 501 - Websocket protocol not supported
type Status report
message Websocket protocol not supported
description The server does not support the functionality needed to fulfill this request.

Apache Tomcat/7.0.42

Antes do Push ser necessário, usei o mod_jk para encaminhar solicitações dehttp://mydomain/myapp parahttp://mydomain:8080/myapp. Aparentemente mod_jk não suporta WebSocket, então eu escolhi usar a diretiva ProxyPass. Aqui está minha configuração do Apache:

ProxyPass               /myapp/PUSH/ ws://localhost:8080/myapp/PUSH/
ProxyPassReverse        /myapp/PUSH/ ws://localhost:8080/myapp/PUSH/

ProxyPass               /myapp/VAADIN/ http://localhost:8080/myapp/VAADIN/
ProxyPassReverse        /myapp/VAADIN/ http://localhost:8080/myapp/VAADIN/
ProxyPass               /myapp http://localhost:8080/myapp
ProxyPassReverse        /myapp http://localhost:8080/myapp

Eu estava suspeitando que mod_proxy_wstunnel era o culpado, mas aparentemente funciona bem quando eu proxyhttp://echo.websocket.org. Descobri que o erro 501 é lançado pelo Atmosphere, mas não tenho a menor idéia de como depurá-lo. Se eu remover o proxy ws (para que o envio use HTTP em vez de WS), recebo um erro instantâneo "Session expired".

Alguém sabe como propagar corretamente as solicitações de envio do servidor HTTP Apache para o Apache Tomcat?

questionAnswers(3)

yourAnswerToTheQuestion