Tomcat CometProcessor NIO обслуживается через Apache httpd? - PullRequest
5 голосов
/ 19 ноября 2009

У меня есть сервлет CometProcessor, работающий нормально в Apache Tomcat. Моя запись коннектора server.xml:

<Connector connectionTimeout="20000" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8443"/>

Я могу поразить сервлет (с именем 'EventBus') URL-адресом Tomcat, например, так:

http://xyz.com:8080/EventBus

У меня есть Apache httpd, обслуживающий файлы .jsp и сервлеты с базовым файлом worker.properties с таким рабочим, как:

worker.ajp13w.type=ajp13
worker.ajp13w.host=localhost
worker.ajp13w.port=8009

Это прекрасно работает со всем, кроме моего сервлета CometProcessor. Когда я пытаюсь поразить этот сервлет, я получаю:

HTTP method GET is not supported by this URL

Кто-нибудь знает, как правильно перенаправлять запросы из Apache httpd в Apache Tomcat для подключения NIO, такого как CometProcessor?

Спасибо за любую помощь.

1 Ответ

2 голосов
/ 20 ноября 2009

Я не думаю, что вы можете использовать CometProcessor с Apache. CometProcessor требует асинхронного ввода-вывода, это невозможно сделать через Apache httpd.

JK не работает наверняка, потому что только коннекторы APR и NIO поддерживают CometProcessor.

Возможно, вы сможете использовать mod_proxy для переадресации соединения на разъем NIO, но вы не получите событие асинхронно.

...