?
使用第三方的報表設計器 / 服務器來快速的開發報表。
潤乾服務器是使用 Java 語言編寫的一個靈活易用的報表服務器和設計器。因此,用它來做 Java 的報表設計是很快捷的,但是經常報錯,而且不好查錯。
?
下面來介紹一下潤乾報表 4.0 在 J2EE 下的部署【非集成部署】
①?下載一個新的 Tomcat
②?新建一個 Web 應用,基本目錄結構如下:
|-report
|----------include [ 包含 images 、 js 、 css 等資源 ]
|----------reportFiles [ 包含潤乾設計的報表 raq 文件 ]
|----------reportJsp [ 包含用于展現 raq 資源的 jsp 文件 ]
|----------WEB-INF
?????????? |----------classes [ 放置潤乾的授權文件 ]
?????????? |----------lib [ 放置 jar 包 ]
?????????? |----------web.xml [ 配置應用程序 ]
?????????? |---------- 其他配置文件 ?
?
③?拷貝潤乾的 Web 發布包
一般來說,我們創建了一個新的應用后,可以將潤乾的 web 發布報作為一個標準的應用去發布,因為潤乾的發布包本身就是上述的標準結構。
我們先來看看潤乾的發布包的目錄結構
根據以上的發布包,選擇性的拷貝了如下的內容到 report 應用之中
Report?WEB 應用的結構 WEB-INF 的目錄結構
?????
注意:
1)?我們一定要將數據庫驅動和潤乾的 jar 包都拷貝到 WEB-INF 的 lib 文件夾里,且盡量不要將 jar 包放在全局的 lib 里。不便于管理,若無驅動則會報出如下的錯誤:
錯誤信息:
runqianReportLogger?:?[ERROR]??-?error:?產生數據工廠:?
com.runqian.report4.dataset.SQLDataSetFactory?失敗
錯誤來源::?Cannot?load?JDBC?driver?class?'com.ibm.db2.jcc.DB2Driver'
?
這個錯誤是提示我們JDBC 無法連接,是驅動問題。 因此,必須要拷貝的 jar 包的列表如下: ?
?
潤乾的 jar 包?????????????? DB2 數據庫的驅動
?
????
2)?記得將服務器的授權文件runqianWindowServer.lic拷貝到 WEB-INF/classes 文件夾下。否則會報錯如下:
runqianReportLogger?:?[INFO?]??-?報表證書錯誤!
未發現授權文件:runqianWindowServer.lic,?請檢查是否在類路徑或絕對路徑上l
?
④?配置相關的文件
1 ) web.xml 文件
直接把潤乾的 demo 的 web.xml 文件拷貝進來,無需改動。
?
2)?reportConfig.xml 文件 [ 容易出錯的配置文件,講解部分重要的配置 ] ?
<?xml?version="1.0"?encoding="UTF-8"??>
<reportConfig>
??
第一個重要的配置:license【表示潤乾公司提供的授權文件名及其路徑,可以是絕對文件路徑;也可以是相對于 WEB 應用根目錄的相對路徑(此時要以 “/” 開頭) 】
????<config>
??????<name>license</name>
??????<value>runqianWindowServer.lic</value>
</config>
?
第二個重要的配置:reportFileHome【表示編輯好的報表文件在應用中存放的位置,值可相對于 WEB 應用根目錄;也可 是絕對路徑,分隔符用 “/” 表示,如 d:/myReport/web/reportFiles 。 】
????<config>
??????<name>reportFileHome</name>
??????<value>/reportFiles</value>
</config>
?
第三個重要的配置:JNDIPrefix【表示查找數據源時的環境串前綴,在不同的 WEB 服務器中不同,如 Tomcat 中是 java:/comp/env ,而 Weblogic 和 Websphere 中均不需要,可以不填。】
<config>
??????<name>JNDIPrefix</name>
??????<value>java:/comp/env</value>
</config>
?
第四個重要的配置:dataSource【表示用戶在 WEB 應用中要用到的數據源配置,其格式如下:數據源的 JNDI 名稱 , 數據庫類型 [, 取數時是否需要轉換編碼 , 數據庫字符集編碼 , 顯示報表時的字符集編碼 ][,SQL 是否需要轉碼 ]; 一般我們只需要配置前兩個即可。】
????<config>
??????<name>dataSource</name>
??????<value>NEWMOD,db2;value>
</config>
?
第五個重要的配置:數據源信息的配置【以應用程序為單位,配置特定的數據源。】【備注:若使用的是JNDI直連,則這個配置可以忽略】
<jdbc-ds-configs>
??????<jdbc-ds-config>
??????????<name>report</name>
??????????<db-type>javax.sql.DataSource</db-type>
<connection-url>jdbc:db2://192.168.100.135:50000/NEWMOD?</connection-url>
??????????<driver-class>com.ibm.db2.jcc.DB2Driver</driver-class>
??????????<user-name>db2admin</user-name>
??????????<password>db2admin</password>
??????????<db-charset>GBK</db-charset>
??????????<client-charset>GBK</client-charset>
????????</jdbc-ds-config>
?</jdbc-ds-configs>
</reportConfig>
?
注意,這里的 name 屬性的值是 report ,也就是應用程序的名字。而不是 JNDI 的名字。
如果配置成 JNDI 的名字,則會出現報錯 ,查看 DB2 的報錯大全可見:
?
類代碼
2E
無效連接名稱
表
25.
類代碼
2E
:無效連接名稱
SQLSTATE
值??
含義:2E000
連接名稱無效。
?
可以看出,這就是因為 name 屬性配錯的原因。
?
⑤?配置數據源
在 reportConfig.xml 文件中配置了數據源的連接信息,但是沒有配置數據源。
現在我們在 conf----catalina----localhost 文件夾下建立一個和應用程序同名的 report.xml 文件,內容如下:
<?xml?version="1.0"?encoding="UTF-8"?>
?<Context?path="/report"?docBase="D:\?report\webapps\report"?reloadable="true"?>?
<Resource?auth="Container"?
name="newmodules/DataSource"
??type="javax.sql.DataSource"?
maxWait="10000"?maxIdle="30"?maxActive="100"??
??username="db2admin"?
password="db2admin"?
driverClassName="com.ibm.db2.jcc.DB2Driver"?
??url="jdbc:db2://192.168.100.135:50000/NEWMOD"
??/>
??</Context>??
?
如果不配置數據源會報錯如下:
javax.servlet.ServletException:?No?report?config?file!
?
⑥?發布報表和 JSP 頁面并訪問
測試:將 financeView.raq 文件放在 reportFiles 文件夾里, financeView.jsp 頁面放在 reportJsp 文件夾下,然后訪問 jsp 頁面: http://localhost:8080/report/reportJsp/financeView.jsp
展現如下:
?
?
真的成功了呢 ~ 好棒啊 ~ 。
好了,繼續工作了 ~ 。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
