準備工作:Finereport報表 6.2版本,Jboss 4.05(jdk1.4環境),sqlsever 2000服務器(測試時使用的數據庫服務器,可根據自己需求變更選擇數據庫)
一、 首先開始項目的部署
在jbossserverdefaultdeploy下新建文件夾,名為WebReport.war(也可通過將其打成war包來部署,這里不做討論),將Finereport報表6.2中WebReport文件夾下的Web-inf復制到WebReport.war中然后配置好web-inf文件夾下的web.xml,及resources文件夾下的datasource.xml,config.xml,privilege.xml(一般情況下默認即可,不用做具體設置)。
如圖

這時如果用web瀏覽test報表的話我們只會得到一個報表的框架而沒有任何數據。
接下來是配置的重點:
在boss"server"default"deploy文件夾下創建mssql-ds.xml文件,文件具體內容如下(可使用記事本創建):
<?xml version='1.0' encoding='UTF-8' ?>
<datasources>
<local-tx-datasource>
<jndi-name>MSSQL</jndi-name>
<connection-url>jdbc:microsoft:sqlserver://192.168.100.112:1433;DatabaseName=test</connection-url>
<driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
<user-name>sa</user-name>
<password>dba</password>
<!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
<!-- sql to call on an existing pooled connection when it is obtained from pool
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>MS SQLSERVER2000</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
其中MSSQL是對應jndi的名字,可隨意改變。
192.168.100.112是測試用的服務器ip,根據實際情況設置。
test是數據庫名字。
注:mssql-ds.xml只是對應sqlsever服務器的文件,如果是其他數據庫要對應生成不同的xml文件。
在jboss"docs"examples"jca路徑中有相對應各個不同服務器的xml文件,只需在其基礎上做修改即可用。

我們將sqlsever 2000的jdbc驅動msbase.jar、mssqlserver.jar和msutil.jar三個文件放置到JBOSS安裝目錄jboss"server"default"lib目錄下。
注:如果是其他數據庫,也只要將其對應的驅動放置到jboss"server"default"lib目錄下即可。

在以前部署的WebReport.war/web-inf文件夾中創建jboss-web.xml
具體內容如下:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE jboss-web
PUBLIC "-//JBoss//DTD Web Application 2.3V2//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd">
<jboss-web>
<resource-ref>
<res-ref-name>MSSQL</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<jndi-name>java:/MSSQL</jndi-name>
</resource-ref>
</jboss-web>
其中兩個斜體加粗的MSSQL對應以前的jndi的名字,其他不用改變。

用記事本類似的工具打開WebReport.war/web-inf文件夾中的web.xml在其中加入斜體加粗的部分:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>Template WebApp</display-name>
<servlet>
<servlet-name>ReportServer</servlet-name>
<servlet-class>com.fr.web.ReportServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ReportServer</servlet-name>
<url-pattern>/ReportServer</url-pattern>
</servlet-mapping>
<resource-ref>
<description>
Resource reference to a factory for java.sql.Connection
instances that may be used for talking to a particular
database that is configured in the server.xml file.
</description>
<res-ref-name>MSSQL</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
保存,其中MSSQL和上面所說一致。

按上面的步驟配置好以后,我們打開瀏覽器瀏覽報表test,效果如下:

配置成功。
接下來我們看test.cpt這張報表是如何設計的
1. 定義數據源時定義數據庫sql2000,將其定義為jdbc連接,連接數據庫sqlsever 2000里的數據庫test(test是事先在服務器中創建好的數據庫),如圖。

2.選擇數據庫sql2000中數據源表sale,如圖。

3.制作成簡單的報表,效果如下。

4.看到效果連接成功后返回到步驟1定義數據源,選擇已經定義好的數據庫sql2000,選擇jndi連接,在jndi的名字中輸入MSSQL(名字可隨意定義),如圖。
