我通過Proxy(Apache)在Tomcat 5.5上使用Flex with BlazeDS時遇到問題。我已經搜索了它,但沒有找到解決我的問題的答案。我希望你們能幫助我。 :-)BlazeDS Servlet沒有通過代理響應
我們的情景是這樣的:
Flex的應用程序使用BlazeDS的上一個Tomcat 5.5與我們的DataService溝通。 web應用程序是balze啓用和服務配置包含類似下面的通道定義:
<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
<endpoint url="http://xxx.xxx.xxx.xxx:8180/myDataService/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint">
</channel-definition>
我設置了Flex服務器根URL來http://xxx.xxx.xxx.xxx:8180/myDataService
(上下文根目錄:/ myDataService)和編譯反對這種服務,配置我的Flex應用程序。
之後,我將我的flex應用程序和我的dataservice部署在某個IP地址爲xxx.xxx.xxx.xxx的服務器上。 http://xxx.xxx.xxx.xxx:8180/myDataservice
將tomcat的端口就是8180.
聽取如果我使用的IP的URL地址一切正常打開我的Flex應用程序:這兩個應用程序之後使用http://xxx.xxx.xxx.xxx:8180/myFlexApp
或DataService在該 可用。我的應用程序完美地接收數據。
好的。一切都很好。
現在我想使用代理服務器(通過apache http服務器)來隱藏ip並使用域名。
我做了如下修改我的服務,配置:
<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
<endpoint url="http://mydomain.com/data/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint">
</channel-definition>
我設置了Flex服務器根URL來http://mydomain.com/data
(上下文根/數據),並編譯反對這種服務,配置我的Flex應用程序。
我再次在同一個tomcat上部署應用程序。
現在我在我的apache目錄(etc/apache2/sites-available /)中的站點可用(站點已啓用)文件夾中創建一個名爲mydomain.com的條目 我使用ServerName www.mydomain創建一個虛擬主機。 com和ServerAlias mydomain.com。我還在代理塊中添加了必要的規則,併爲虛擬主機定義添加了其他必需的規則。 以下的ProxyPass/ProxyPassReverse項都包含在這個文件:
ProxyPass /flexApp http://xxx.xxx.xxx.xxx:8180/myFlexApp
ProxyPassReverse /flexApp http://xxx.xxx.xxx.xxx:8180/myFlexApp
ProxyPass /data http://89.19.229.148:8180/myDataservice
ProxyPassReverse /data http://89.19.229.148:80/myDataservice
後,我可以在瀏覽器與http://www.mydomain.com/flexApp
打開Flex應用程序並加載。但是當它嘗試使用blazeds聯繫數據服務時會引發錯誤消息。 我甚至無法打開網址http://mydomain.com/data/messagebroker/amf
。將顯示404錯誤。之前 - 使用IP地址 - 顯示空白頁面。 奇怪的是,非開發的Servlets工作正常。例如。我可以打開http://mydomain.com/data/myServlet
,它的工作原理。只有Blaze不起作用。
你有什麼想法爲什麼會出現這個問題,我怎麼解決它。提前致謝。你真的幫助我!
亨裏克