2015-06-05 13 views
7

WebSockets ile geliştiriyorum ve Tomcat 8 üzerinde çalışan bir web uygulaması yaptım. Ancak, önündeki Apache 2 ile test ederken, istemci HTTP 500 ve Tomcat günlüğünü alma diyor ki: onun HTTP konektörü yoluyla doğrudan Tomcat erişirken WebApps ve Tomcat üzerinden bağlantılar: HTTP yükseltmesi AJP protokolü tarafından desteklenmiyor

java.lang.UnsupportedOperationException: HTTP upgrade is not supported by the AJP protocol 
    at org.apache.coyote.ajp.AbstractAjpProcessor.action(AbstractAjpProcessor.java:587) 
    at org.apache.coyote.Request.action(Request.java:379) 
    at org.apache.catalina.connector.Request.upgrade(Request.java:1886) 
    at org.apache.catalina.connector.RequestFacade.upgrade(RequestFacade.java:1114) 
    at org.apache.tomcat.websocket.server.UpgradeUtil.doUpgrade(UpgradeUtil.java:231) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:77) 

Bu

çalıştı. Bu AJP ile desteklenmiyorsa, bir geçici çözüm var mı?

cevap

4

Kullanım Apache modülü mod_proxy_wstunnel:

sudo a2enmod mod_proxy_wstunnel 

Sonra apache.conf bu ekleyerek aracılığıyla WebSocket bağlantılarını izin kullanmak:

ProxyPass "/ws2/" "ws://localhost:8180/ws" 

Ve emin olun Eğer kullanarak Tomcat bir HTTP konektörü sağladı server.xml'da <Connector protocol="HTTP/1.1" port="8180" ...>.

+3

Bu apache 2.4.7'de "mod_" olmaksızın, sudo a2enmod proxy_wstunnel – xtian

İlgili konular