我使用flex 3.0在我的应用程序中开发了仪表板。为此,我在flex应用程序周围使用了JSP包装器。我的应用程序在JBoss应用服务器上运行。对于flex应用程序和我的应用程序之间的通信,我正在使用LCDS。 HTTPService组件用于从服务器接收数据。在service-config.xml中为amf和http通道以及安全安全模式和非安全模式提供了通道定义。在我的proxy-config.xml中,我定义了频道和目的地。
services-config.xml
...
...
<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<polling-enabled>false</polling-enabled>
</properties>
</channel-definition>
<channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
<endpoint url="https://{server.name}:{server.port}/{context.root}/messagebroker/amfsecure" class="flex.messaging.endpoints.SecureAMFEndpoint"/>
<properties>
<add-no-cache-headers>false</add-no-cache-headers>
</properties>
</channel-definition>
<channel-definition id="my-http" class="mx.messaging.channels.HTTPChannel">
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/http" class="flex.messaging.endpoints.HTTPEndpoint"/>
</channel-definition>
<channel-definition id="my-secure-http" class="mx.messaging.channels.SecureHTTPChannel">
<endpoint url="https://{server.name}:{server.port}/{context.root}/messagebroker/httpsecure" class="flex.messaging.endpoints.SecureHTTPEndpoint"/>
<properties>
<add-no-cache-headers>false</add-no-cache-headers>
</properties>
</channel-definition>
...
...
proxy-config.xml
...
...
<default-channels>
<channel ref="my-http"/>
<channel ref="my-amf"/>
<channel ref="my-secure-http"/>
<channel ref="my-secure-amf"/>
</default-channels>
...
...
<destination id="dashboardService">
<properties>
<url>/kr/servlet/DashboardServlet</url>
</properties>
</destination>
<destination id="dashboardJSPService">
<properties>
<url>/kr/krportal/dashboardJSPService.jsf</url>
</properties>
</destination>
...
...
在我的开发环境中,安全和非安全模式都运行良好。现在,当我将它部署在负载均衡器(仅接受安全请求,如果请求不安全,将其重定向到安全URL)后面时,消息代理servlet没有响应。我观察到的更多事情是当环境非负载平衡时,有'http://{server.name}:{server.port}/{context.root}/messagebroker/http'.
之类的请求,这些请求是请求后的。但是在带有ssl的负载均衡环境中,请求再次像'http://{server.name}:{server.port}/{context.root}/messagebroker/http'
这是一个post请求,它被重定向到'https://{server.name}:{server.port}/{context.root}/messagebroker/http'
这是一个get请求。此get请求返回的内容为null。
寻找一些评论
由于
答案 0 :(得分:0)
此配置文件由flex和lcds使用。 Flex使用它将消息发送到特定端点,并且lcds使用此文件实际创建端点。您会注意到您看到/ amf,/ amfsecure,/ http和/ httpsecure的网址末尾。如果您的负载均衡器正在将http://domain.com/app/messagebroker/amf之类的呼叫重定向到https://domain.com/app/messagebroker/amf,那么它将失败,因为ssl端点以/ amfsecure结束。