我通过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不起作用。
你有什么想法为什么会出现这个问题,我怎么解决它。提前致谢。你真的帮助我!
亨里克