下面就通過電子表格FineReport來簡單介紹一下報表部署流程。
工具/原料
電子表格FineReport7.1.1
大小:148.2M 適用平臺:windows/linux
報表應用目錄結構
web應用的目錄結構
報表部署分為兩種,一是報表作為一個獨立的應用獨立部署;另一個是集成到現有應用即嵌入式部署。不管哪種部署方式,他們的目錄結構都是類似的。
如下圖我們對未包含報表的應用及包含報表的應用目錄作一個比較:
獨立部署
FineReport安裝目錄下的WebReport目錄就是一個標準的應用,因此,若用戶希望將報表作為一個獨立的應用進行部署的話,可以直接使用WebReport目錄進行獨立部署。
嵌入式部署
若用戶希望將報表集成到自己的應用中的話,則可以對應上圖“部署報表後的應用”目錄結構,將對應的報表文件拷貝到相應目錄即可。
獨立部署(發佈)
發佈應用
應用通常以文件夾或war包得形式發佈,Web應用服務器不同,發佈方式不同:
如Tomcat服務器只需要將Web應用拷貝到%FR_HOME%\webapps目錄下,重啟tomcat即發佈成功;
而Websphere服務器需要先將Web應用打成war包,然後在websphere控制檯進行配置發佈。
各個服務器下部署報表應用我們會在下面章節中詳細介紹。
獨立部署(發佈)
部署就是將FineReport應用集成到新的Web工程
把FineReport_7.1安裝目錄下的WebReport文件拷貝到%Tomcat_HOME%/webapps/下:
應用名WebReport可以根據需要改變,如可以改為“FineReport”。
訪問報表
報表應用發佈(部署)成功後,便可以在客戶端瀏覽器中訪問了。
在客戶端瀏覽器中輸入訪問地址端口/appName/ReportServer?reportlet=GettingStarted.cpt,發送請求給Web應用服務器如tomcat;
Web應用服務器會將請求信息發送給報表servlet;
報表servlet根據請求信息,如獲取希望查看的模板名稱reportlet=GettingStarted.cpt,在後臺計算生成GettingStarted.cpt的內容,返回給Web應用服務器;
最後Web應用服務器將結果返回給客戶端瀏覽器,瀏覽器將報表結果呈現給我們。
注:若Web應用服務器可以在外網進行訪問,那麼我們就可以外網訪問報表了。
嵌入式部署
描述
由報表應用目錄結構章節可知,若希望將報表部署到已有的工程中時,需要按照下圖所示的目錄結構,將報表相關的文件拷貝到相應目錄:
複製目錄
全部複製
為了簡便,可以直接將%FineReport_HOME%\WebReport\WEB-INF目錄下面的classes,lib,reportlets,resources四個目錄複製到%Tomcat_HOME% \webapps\jsp-examples\WEB-INF下。
注意:%FineReport_HOME%\WebReport\WEB-INF\classes文件夾下面可能會放置一些網絡報表的class文件,在和您的工程集成時並無衝突。
部分複製
也可以選擇性的只複製必要性文件至已有工程中。
必須複製的文件
fr-server-7.1.jar:包含了報表服務的所有功能,必須拷貝至WEB-INF\lib下;
fr-third-7.1.jar:包含了報表服務引用的第三方插件,必須拷貝至WEB-INF\lib下;
reportlets:該文件夾為FineReport服務器規定的,不能修改,且必須為小寫,其下可以建立子目錄,所有報表模板cpt文件必須保存在reportlets文件夾下,且reportlets文件必須放在WEB-INF\下;
resources:該文件夾也是FineReport服務器規定的,不能修改,且必須為小寫,下面包含了報表服務器的配置信息,拷貝至WEB-INF下面。
以上文件或文件夾是必須拷貝到已有應用目錄下的。
選擇性複製的文件
classes:該文件夾是應用服務器規定的,主要作用是存放.class文件。若對FineReport進行了二次開發,如自定義函數、程序數據源、程序網絡報表等,也需要將編譯後的class類文件拷貝到該文件夾下;
數據庫驅動包:若報表中使用了JDBC連接了數據庫,需要將對應的數據庫驅動包如Oracle數據庫的驅動ojdbc14.jar拷貝到WEB-INF\lib下,其他數據庫驅動同樣;
修改web.xml文件
在已有工程的web.xml中添加相應的servlet與servlet-mapping子元素。
將%FineReport_HOME%/WebReport/WEB-INF下的web.xml中如下的部分複製到%Web_home%/webapps/Web工程名/WEB-INF下的web.xml中,在最後一個servlet之後插入:
如上代碼複製放到如下目錄下面的配置文件裡面結果如下:
注:web.xml中對於元素出現的順序敏感。servlet必須出現在servlet-mapping標誌之前。所有將所有servlet集合放置在servlet-mapping之前以便於管理與程序調用。
檢測是否部署成功
可以通過瀏覽報表確定是否部署成功
重新啟動Tomcat, 啟動瀏覽器,在地址欄輸入
http:/ip:服務器端口號/項目所在目錄/ReportServer,能成功進入下圖所示頁面,則表明FineReport應用集成web應用並部署Tomcat服務器成功: