BlazeDS由http切换https注意事项

BlazeDS由http切换https注意事项
这段时间准备发布产品,预览版已在用户那里部署。昨天接到一电话,说在https环境下,只要点击到和Flex有关的东西就老报错,然后权限消失,得重新登录。
得知这一问题后自己切换到https下观察,果然如此,而且只要是走BalzeDS AMF通道就必然报错且servelt session丢失。直观感觉应该是通道问题,随后开打BlazeDS配置文件,翻到services-config.xml文件时,发现了my-secure-amf通道,那么顺理成章的应该走这个。遂在Flex那里修改了AMFChannel对象的uri属性(要实现通道切换方法很多,这只是一种方式),由于需要统一通道,所以在修改AMFChannel的uri后还是不能解决问题,经过排查这里必须采用SecureAMFChannel对象才行,最后问题解决。那么要支持两种协议,就需要在flex中进行协议判定,通过不同的协议来切换不同的通道了。代码如下:
         /**
         * 处理协议
         
*/
        
private  function init(){
            var surl:String 
=  ExternalInterface.call( " eval " " window.location.href " );
            var cs:ChannelSet 
=   new  ChannelSet();
            var c:Channel 
=   null ;
            
if (URLUtil.getProtocol(surl) == " https " ){
                c 
=   new  SecureAMFChannel();
                c.uri
= " /SSS/messagebroker/amfsecure " ;
            }
else {
                c 
=   new  AMFChannel();
                c.uri
= " /SSS/messagebroker/amf " ;
            }
            cs.addChannel(c);
            remote.channelSet
= cs;
            .;
        }

请注意!引用、转贴本文应注明原作者:Rosen Jiang 以及出处: http://www.blogjava.net/rosen

你可能感兴趣的:(BlazeDS由http切换https注意事项)