至於爲何使用BIRT我想在這裏也不用過多說明了,公司從去年末(2013年)開始引入了BIRT,使用過程當中也比較順利,對於技術人員也比較容易上手。
瀏覽器
使用BIRT作的第一個主要工做就是將原有項目中的報表分離爲獨立的服務(原有項目歷時時間較久,且項目很大,各種報表有近百張,全是經過累代碼的方式處理的,其實這個項目是作業務處理的,只不過也有報表要求,如此多的功能疊加給系統形成了極大的壓力)。安全
報表順利開發完成,但是部署時遇到了麻煩,因爲項目很大,現場是使用集羣部署的(4臺WEB),本打算單獨部署一個BIRT服務器用於報表展現,業務系統的4臺WEB直接訪問BIRT服務器,此時就出現了使人討厭的服務器
The viewing session is not available or has expiredcookie
「聰明的」技術人員查閱了一些資料後肯定此問題爲BIRT的BUG,將BIRT服務與項目服務部署在一塊兒便可解決,這個方案固然會受到現場運維人員的極力反對,此後一度陷入僵局,技術人員沒法解決,現場人員不肯意按此部署。
session
按照經驗,session無效或者過時通常都是客戶端設置問題,好比安全級別、隱私設置等等,因而去瞄了一眼,發現瀏覽器確實報錯了:
運維
果真是cookie設置問題!cookie禁用致使session無效,容許會話cookie,設置完就能夠訪問了:網站
坑爹啊,耗了一週了呀!
spa
固然了,咱們項目是企業內部使用,還能夠控制用戶的瀏覽器,可是若是是公網訪問,沒法控制用戶瀏覽器怎麼辦呢?開發
查了BIRT相關的網站,這確實是個BUG,主要緣由就是訪問服務器只有經過IP訪問致使的!(內網不都是這麼幹的麼),公網訪問想解決此問題也簡單,將IP改成域名就行了!部署
不知道BIRT何時會修復此BUG,不過至少目前內、外網都能解決,解不解決也不應關心了(也行BIRT的研發團隊也是這麼想的)