birt跨域session失效问题

至于为什么使用BIRT我想在这里也不用过多说明了,公司从去年底(2013年)开始引入了BIRT,使用过程中也比较顺利,对于技术人员也比较容易上手。

使用BIRT做的第一个主要工作就是将原有项目中的报表分离为独立的服务(原有项目历时时间较久,且项目很大,各类报表有近百张,全是通过累代码的方式处理的,其实这个项目是做业务处理的,只不过也有报表要求,如此多的功能叠加给系统造成了极大的压力)。

报表顺利开发完成,可是部署时遇到了麻烦,由于项目很大,现场是使用集群部署的(4台WEB),本打算单独部署一个BIRT服务器用于报表展示,业务系统的4台WEB直接访问BIRT服务器,此时就出现了令人讨厌的

The viewing session is not available or has expired

221206_AI2k_603602.png

“聪明的”技术人员查阅了一些资料后确定此问题为BIRT的BUG,将BIRT服务与项目服务部署在一起即可解决,这个方案当然会受到现场运维人员的极力反对,此后一度陷入僵局,技术人员无法解决,现场人员不愿意按此部署。

    按照经验,session无效或者过期一般都是客户端设置问题,比如安全级别、隐私设置等等,于是去瞄了一眼,发现浏览器确实报错了:

    222518_VJkQ_603602.png

    果然是cookie设置问题!cookie禁用导致session无效,允许会话cookie,设置完就可以访问了:

222759_VdxZ_603602.png

坑爹啊,耗了一周了呀!

当然了,我们项目是企业内部使用,还可以控制用户的浏览器,但是如果是公网访问,无法控制用户浏览器怎么办呢?

查了BIRT相关的网站,这确实是个BUG,主要原因就是访问服务器只有通过IP访问导致的!(内网不都是这么干的么),公网访问想解决此问题也简单,将IP改为域名就好了!

不知道BIRT什么时候会修复此BUG,不过至少目前内、外网都能解决,解不解决也不该关心了(也行BIRT的研发团队也是这么想的)


转载于:https://my.oschina.net/u/603602/blog/227142

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值