潤乾報表整合到Tomcat服務器的部署過程


轉載自:http://www.cnblogs.com/avivaye/archive/2012/11/16/2773681.html

使用第三方的報表設計器/服務器來快速的開發報表。

潤乾服務器是使用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

展現如下:

 

 

真的成功了呢~好棒啊~。

好了,繼續工作了~。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM