轉-Pentaho技術白皮書中文版(一)----用 Eclipse 構建和調試 Pentaho

這篇文檔的目的是教會開發人員如何開始進行 Pentaho 的開發。這篇文檔解釋瞭如何在 Eclipse 中設置一個開發環境,包括如何鏈接到 Pentaho Subversion repository,檢出 Pentaho 項目,使用一個 '1stand-alone'1 Java 應用和 Eclipse JBoss IDE 來構建調試它們。這篇文檔也解釋了 Pentaho repository 結構和對於開發Pentaho 來講,許多很重要的 build targets。 java

目標讀者是軟件開發人員。咱們假設讀者已經很熟悉 Eclipse 平臺和 Java 開發。若是目的是將平臺配置爲一個 J2EE 應用,咱們假設讀者瞭解 J2EE 和應用服務器。咱們此處就是使用 JBoss 應用服務器進行演示。雖然不是很重要,但若是讀者有使用 Apache Ant 的經驗也會頗有用處。 web

若是你仔細閱讀了這個指南中的說明,但仍沒有解決你的問題,請到論壇尋找答案: http://forums.pentaho.org/. sql

 

01. 設置你的環境 shell


如下是開始研究 Pentaho,你須要使用的工具列表。推薦你如今就下載全部必需的包,這樣你就可不間斷的進行試用。 數據庫

1.       一個 Java SDK:Pentaho BI Platform 在 Java SDK 1.4 上構建和測試。注意你須要完整的 SDK,而不只僅是 runtime (JRE)。 瀏覽器

2.       Ant:基於 Java 的構建工具。 tomcat

3.       Eclipse:平臺 IDE。 服務器

4.       Subclipse:一個 Eclipse 插件,其在 Eclipse IDE 上添加了 Subversion 集成。 app

5.       JBoss IDE for Eclipse。 eclipse

爲開始設置:

1.  下載和安裝你的 Java SDK。

2.  下載和安裝 Ant。

3.  下載和安裝 Eclipse。

4.  下載和安裝 Subclipse。

5.  下載和安裝 JBoss IDE for Eclipse。

之後章節是關於 Pentaho 團隊使用的這些工具的版本說明,以及使環境適合於 Pentaho 平臺 codeline 開發的技巧。每一個工具在其各自的下載中有詳細的安裝指令,這裏咱們不詳細介紹。

Java SDK

Pentaho BI Platform 在 Java SDK 1.4 上構建和測試。注意你須要完整的 SDK,而不只僅是runtime (JRE)。在後面幾步中,你會看到爲了使 Ant 構建腳本正確運行,你必須指定 Java 編譯器可執行程序(javac)。這個可執行程序位於你安裝的 Java SDK 的 /bin 目錄下,所以記住你將 SDK 安裝到了哪裏。

Ant

Ant 是一個基於 Java 的構建工具,咱們將之用於構建平臺,以及支持用 Eclipse 進行 Pentaho 進行開發中的活動。目前用於構建 Pentaho 的可下載的二進制的版本是 Ant 1.6.5。建議使用 Ant 工具從命令行構建一些 Pentaho Ant targets(在某些環境下是必要的)。

Eclipse IDE 中自帶了 Ant 的一個版本。這個版本被 IDE 用於構建功能,爲了做爲 Eclipse 的插件可能也進行了一些修改。爲肯定 Eclipse IDE 中的 ant 版本,從 Eclipse 頂部的 Window 菜單瀏覽至Preferences... | Ant | Runtime,在插件的路徑中檢查其版本。

Eclipse IDE

只是最近在設置你的 Pentaho 開發環境時,才須要有一個 Eclipse,但與 Pentaho 的代碼沒啥關係。若是你想在 JBoss 應用服務器中運行和調試代碼,你須要 JBoss IDE (參考下面),那裏有一些兼容性問題(IDE 的最新版本在 Eclipse 的最新版本上好像有些問題)。Pentaho 團隊使用的是如下版本,這些配置是沒問題的:

1.       從 JBoss 網站下載帶有最新 JBoss IDE 插件的 Eclipse – 帶有 JBoss IDE version 2.0.0beta2 的Eclipse IDE 版本 3.2.1. 

2.       從 Eclipse 網站下載 Eclipse 3.2.1 M20060921-0945而後從 JBoss 下載和安裝 JBoss IDE 插件版本 2.0.0 beta2。

Subclipse

Subclipse 是 Eclipse 的一個插件,在 Eclipse 環境上激活 Subversion 功能。Subversion 是大多數 Pentaho 項目使用的源代碼控制庫。Subclipse 利用了 Eclipse Update Manager,其容許你用一個 URL 進行註冊,在 Eclipse IDE 上自動獲取和安裝插件。和咱們的配置兼容的 Subclipse 版本是 Subclipse 1.2.x。你可在 Tigris.org 網站找到詳細的安裝指令,或按照如下簡短的指令:

在 Eclipse 中,選擇菜單條 Help | Software Updates | Find and Install...

1.       在嚮導的第一步中,選中 "Search for new features to install",點擊 "next" 按鈕。

2.       在下一步中,點擊按鈕 "New Remote Site..."。

3.       在彈出式窗口中,輸入你選擇的站點名,輸入如下url:http://subclipse.tigris.org/update 1 .2.x,點擊 "OK" 按鈕。

4.    在下一步中,你應該看到一個可從中選擇的功能列表,選擇適合於你的 Eclipse 版本的 "Subclipse plugin"。

5. 容許插件安裝完成。使用 Subclipse的詳細命令,請到 Eclipse Help 菜單,選擇 Help Contents,而後在內容表中瀏覽 Subclipse 樹。

JBoss IDE

若是你想在 JBoss 應用服務器中調試,那麼你須要安裝 Eclipse 的 JBoss IDE 插件。若是你下載了打包的 Eclipse\JBoss IDE 包,這樣你就不須要安裝 JBoss IDE 插件 – 你已經有了。Eclipse 的JBoss IDE 插件是一個工具,容許你一步步的調試在一個 JBoss 應用服務器中做爲一個 web 應用的一部分運行的 Java 類。

JBoss IDE 插件一般經過 Eclipse Update Manager 獲取。然而,在這篇文檔寫做時,JBoss IDE 版本2.0.0beta2 並無安裝命令,文檔或到 Update Manager 的連接。That's what we get for using a development build。這並非一個問題,它很簡單,咱們會盡力描述。

今後處獲取 JBoss 插件:

1.       下載插件,JBossIDE-2.0.0.Beta2-ALL.zip (不是 plugin\Eclipse 包!)。

2.       將包解壓進你的 eclipse 安裝目錄 – 不是 zip 文件中 /eclipse 開頭的那個目錄結構。

3.  啓動\重啓 Eclipse。

一旦你成功安裝了 JBoss IDE 插件,繼續到下一節。在 "Debugging in JBoss Application Server" 這個練習中,咱們會介紹如何配置插件用於調試。

 

02. 探索 Pentaho Repository

This page last changed on Nov 30, 2006 by bhagan.

Pentaho BI Platform 代碼位於 Subversion repository 中的 svn://source.pentaho.org/若是你沒有使用Subversion 的經驗,不要怕 – 這裏有本在線電子書:http ://svnbook. red-bean.com.

Subversion 中的 Pentaho 項目是:

l        pentaho – 主要的 Pentaho 源代碼樹

l        pentaho-cubedesigner – 用於鏈接到關係數據源的,嚮導驅動的圖形用戶界面的源代碼,定義了 analytical dimensions,肯定了用於分析的 measures 或 "facts"。

l        pentaho-data – 默認 sample 數據庫

l        pentaho-designstudio - 用於構建和測試 Action Sequence documents 的圖形 eclipse 環境的源代碼。

l        pentaho-designstudioIDE – 本質上是帶有 build 文件的 eclipse,其將安裝 pentaho action-sequence-plugin 和 splash screen。

l        pentaho-preconfiguredinstall - 預配置的 Jboss 應用服務器的源代碼。

l        pentaho-reportdesigner - 建立 JFreeReports 的 standalone designer 的源代碼。

l        pentaho-reportwizard - 建立 JFreeReports 的 standalone 嚮導的源代碼。

l        pentaho-solutions - sample solutions。

l        pentaho-standalone - 單獨運行平臺的 Java 應用的代碼,沒有一個 J2EE 應用服務器。

咱們一直致力於保持簡單健全的項目結構和開發團隊。下面會描述這篇文檔中將要探討的項目的描述:

l        pentaho

l        penta ho-data

l        pentaho-solutions

l        pentaho-preconfiguredinstall

l        pentaho-standalone

在這篇文檔裏,咱們不會討論 Pentaho 客戶端工具:

l        pentaho-cubedesigner

l        pentaho-designstudio

l        pentaho-designstudioIDE

l        pentaho-reportdesigner

l        pentaho-reportwizard

pentaho 項目

pentaho 項目有源代碼,資源和 Pentaho BI 平臺的項目設置。在這個項目裏,你可瀏覽平臺代碼和體系結構。

 

目錄/文件

描述

/pentaho

源代碼樹的根目錄。

/cobertura

包含庫,用於肯定單元測試應該覆蓋代碼中的多少百分比。

/scripts

包含用於構建 Preconfigured Install 時使用的 startup 腳本。

/server

服務器代碼的 Source tree。

/third-party

包含 lib 目錄,包含編譯和構建所需的全部第三方庫。

.classpath

設置項目 classpath 的 Eclipse 文件。

.project

描述項目的 Eclipse 文件。

build.xml

用於 Pentaho 項目的 Ant build 文件。

default.properties

用於構建 Pentaho 項目的屬性,經過在相同的目錄中,建立一個override.properties 文件,並在其中增長你想覆蓋的那些屬性的方法來覆蓋這個文件中的屬性。

deployment_build. properties

deployment_build .xml 所用的屬性文件。

deployment_build.xml

Build 文件,其包含用於構建 appserver specific deliverables 的 targets。它被build.xml 使用,做爲 j2ee deployments 的一部分。

excludejars.generic

文本文件,列出了那些不該該被包含在 .war 文件中的 jars,其在 build 文件中用於tomcat-war target。

excludejars.jboss

文本文件,列出了那些不該該被包含在 .war 文件中的 jars,其在 build 文件中jboss-war target。

 

pentaho-data 項目

Pentaho BI Platform 帶有一套默認數據庫(使用 Hypersonic SQL) 來容納幾個功能組件和子系統所必需的 repositories。爲了使得平臺的這些 parts 能運行,你須要這些 repositories。這個數據存在於模塊'pentaho-data'。Pentaho-data 也包含數據庫的啓動和關閉腳本。

 

目錄/文件

描述

/pentaho-data

數據庫樹的根目錄。

/hibernate

包含用於 Hypersonic SQL 的平臺 repository 腳本。

/quartz

包含用於 Hypersonic SQL 的  Quartz scheduler 腳本。

/sampledata

包含用於 Hypersonic SQL 的 sample 數據腳本。

/shark

包含用於 Hypersonic SQL 的 Shark 工做流腳本。

sta rt_hypersonic. bat

Windows 平臺的啓動批處理文件,用於啓動 Windows 上的數據庫。

start-hypersonic.sh

*nix 平臺上的啓動批處理文件,用於啓動 *nix 上的數據庫。

stop_hypersonic.bat

Windows 平臺上的關閉批處理文件,用於關閉 Windows 上的數據庫。

stop-hypersonic.sh

*nix 平臺上的關閉批處理文件,用於關閉 *nix 上的數據庫。

 

重要:

'pentaho-data' 模塊是一個 standalone 組件,其充當一個數據庫服務器。項目中提供的腳本用於啓動和關閉Hypersonic 數據庫。腳本依賴於 Hypersonic jdbc 類,其位於 'pentaho-data 目錄中的一個 /lib 目錄中。所以爲了使得這些腳本正確運行,你須要將 Hypersonic driver jar 放在腳本須要的位置,以下所示:

1.     'pentaho-data' 目錄中建立一個名爲 lib 的目錄。

2.     Hypersonic jdbc driver .jar 文件 (hsqldb.jar) 複製到 lib 目錄。建議你從 'pentaho'項目的 third-party/lib 目錄中獲取這個文件,由於那個版本比較可靠。

pentaho-preconfiguredinstall 項目

preconfigured-install 項目包含一個完整的 JBoss 應用服務器,配置並調優來運行 Pentaho BI 平臺代碼。JBoss 應用服務器目錄結構的詳細信息請參考 JBoss Wiki。

pentaho-solutions 項目

若是你的目標是將平臺設置爲一個 web 應用,或僅僅做爲你本身的 solutions 的起點,你須要從 Subversion 獲取最新的 samples。設置 samples 是一個相對小的練習,提供了一個很好的方式來測試你的配置中的各類組件。

samples 位於名爲 '1pentaho-solutions'的項目中。pentaho-solutions 項目包含一套samples,其演示了平臺的幾種組件功能,還包括一套 clean 配置文件。

爲運行 samples,你也須要下載默認的 Hypersonic 數據庫。獲取數據庫的詳細命令請參考上一節。

目錄/文件

描述

/pentaho-solutions

solution tree 的根目錄。

/admin

administrative samples 的根目錄。

/samples

sample solution 的根目錄。

/system

系統目錄,其包含全部平臺和組件配置信息。

/test

test solution 的根目錄。

 

重要: samples 下載到一個目錄,其是你的應用服務器的根目錄的兄弟目錄。不用進行任何配置上的修改,web應用會找到"pentaho-solutions" 目錄,只要其如上所述做爲 app server 的兄弟。

pentaho-standalone 項目

pentaho-standalone 文件夾有一個簡單的 solution,平臺庫和 dependencies,以及不使用 J2EE 應用服務器,單獨運行平臺的 Java 應用的代碼。

 

目錄/文件

描述

/resource

resource 目錄,包含咱們實例的 solution 文件。這些文件很相似於包含在咱們的 demo 中的那些。在咱們的 solution 中,有兩個 action sequences:'Hello World' 和 'Simple Report'。若是你瀏覽resource/solution 目錄,你會看到用於 action sequences 的文件。

/src

src 目錄包含源代碼,用於以一個 standalone Java 應用來執行平臺。

/.classpath

設置項目 classpath 的 Eclipse 文件。

/.project

描述項目的 Eclipse 文件。

/build.xml

Pentaho 項目的 Ant build 文件。

 

 

03. 建立 Repository 鏈接

This page last changed on Mar 01, 2007 by gmoran.

Eclipse 是 Pentaho 團隊選中的 IDE,一直使用 Subclipse 做爲 Subversion 插件。插件提供了 "SVN Repository Exploring Perspective",你可從中建立一個鏈接。

爲使用 Subclipse 插件建立一個鏈接:

1.       在 SVN Repository Exploring 透視圖中,右擊,選擇 New,選擇 Repository Location,就會出現 Add New Repository Location 對話框。

2.       在 Url 複選框中,輸入 svn://source.pentaho.org/svnroot.

3.  點擊 Finish。如今你就有了一個到 Subversion repository 的鏈接。

展開,會看到項目。一般對於 Subversion repositories,每一個項目有 3 個子目錄:branches,tags 和 trunk。project/trunk 目錄有最新的代碼,極可能是你想要檢出的。"pentaho" 項目結構的完整解釋請參考02. Exploring Pentaho Repository Structure。

 

04. 檢出項目

This page last changed on Feb 26, 2007 by gmoran.

Eclipse 有幾種不一樣類型的項目,Pentaho 使用簡單的項目和 Java 項目。簡單項目有最基礎的 Eclipse 項目配置和能力,和文件瀏覽沒啥差異。Java 項目包含須要編譯和配置文件的源代碼,例如.classpath 文件, 其將設置源碼樹中的 \lib 子目錄下的庫文件。pentaho-data,pentaho-solutions 和 pentaho-preconfiguredinstall 項目都是 Eclipse 簡單項目。pentaho 項目和 pentaho-standalone 項目都是Eclipse Java 項目。

你從 Subversion 獲取模塊的推薦結構是以兄弟目錄下載它們 – 這個結構使得平臺能自動找到你的solutions 目錄,也使得跟蹤不一樣的模塊更容易。

在檢出 pentaho 項目以後,你當即會注意到(若是你激活了 "Build Automatically" 設置) 那個項目正在被編譯。編譯過程當中可能會出現警告信息,可是沒有編譯錯誤。耐心點,這個任務會持續一分鐘,依賴於你的計算機的速度。pentaho-standalone 項目不會自動編譯,由於在項目能運行前,必須先完成一些設置步驟。

爲完成這篇文檔中的例子,你須要檢出如下項目:

l        pentaho

l        penta ho-data

l        pentaho-solutions

l        pentaho-preconfiguredinstall

l        pentaho-standalone

獲取不一樣的 Codelines

此處,你可能想獲取平臺的最新代碼,那就是構建好,用於咱們下一次發佈的 codeline,版本 1.6。或,若是你正研究最新版本中的一個問題,你可能須要版本 1.2.x。下兩節解釋瞭如何獲取代碼的 1.2 分支中的一個版本,而不是最新版本,Subversion 術語中,這稱之爲 " trunk"。

爲獲取源碼,你可簡單的從命令行中向 Subversion 發佈一個命令,或經過你喜歡的 Subversion 客戶端應用。咱們一直使用 Subclipse。

獲取最新代碼

在 SVN Repository 視圖中,展開你的 repository 鏈接,以前,咱們已經建立了svn ://source. pentaho.org/svnroot.

1.       展開一個項目。在這個實例中,咱們使用 pentaho。

2.      右擊 trunk。

3.       從右鍵菜單中,選擇 Checkout... Checkout from SVN wizard loads。

4.       按照嚮導中的命令,將項目檢出到你的 workspace。將新的 Eclipse 項目命名成和 Subversion 中的項目相同的名字。

5.       爲以前列出的每一個項目重複這些步驟。

在你檢出 pentaho 項目以後,若是它沒有自動編譯,從 Project 菜單中手動編譯。從左邊的視圖中選擇pentaho 項目,而後從 Project 菜單中,選擇 'Build Project' 選項。僅有 pentaho 項目須要被編譯。剩下的項目是簡單項目,不須要編譯。

若是你遇到了出錯信息,在繼續以前,採起必要的措施解決它們。當首次設置項目時遇到編譯錯誤的典型緣由就是模塊結構沒有采用推薦的層次結構,或 /lib 目錄或.classpath 文件中少了一個第三方庫。若是仍然不能解決,咱們能夠提供幫助。將 Eclipse 報出的編譯錯誤提交到咱們的論壇:http://forums.pentaho.org不少項目成員和 Pentaho 開發人員會提供幫助。

Get Version 1.2.x Codeline

在 SVN Repository 視圖中,展開你的 repository 鏈接。以前,咱們建立了svn ://source. pentaho.org/svnroot.

1.       展開一個項目。在這個實例中,咱們將使用 pentaho。

2.       展開 branches。

3.       右擊 1.2。

4.       從右擊菜單中,選擇 Checkout... Checkout from SVN wizard loads.

5.       按照嚮導中的指令將項目檢出到你的 workspace。將新的 Eclipse 項目命名成 Subversion 中的項目使用的相同名字。

6.       爲以前列出的每一個項目重複執行這些步驟。

在你檢出 pentaho 項目以後,若是它沒有自動編譯,從 Project 菜單中手動編譯。從左邊的視圖中選擇pentaho 項目,而後從 Project 菜單中,選擇 'Build Project' 選項。僅有 pentaho 項目須要被編譯。剩下的項目是簡單項目,不須要編譯。

若是你遇到了出錯信息,在繼續以前,採起必要的措施解決它們。當首次設置項目時遇到編譯錯誤的典型緣由就是模塊結構沒有采用推薦的層次結構,或 /lib 目錄或.classpath 文件中少了一個第三方庫。若是仍然不能解決,咱們能夠提供幫助。將 Eclipse 報出的編譯錯誤提交到咱們的論壇:http://forums.pentaho.org不少項目成員和 Pentaho 開發人員會提供幫助。

 

05. 探索 build.xml

This page last changed on Apr 26, 2007 by bhagan.

最近,咱們改進了咱們的 build 過程,爲知足不一樣需求,在 development build 中包含了 separating production build。在 1.2.x 和 trunk codelines 中,production build 使用 build.xml,當你在Eclipse 中開發時,你可以使用 dev_build.xml。

dev_build.xml

你在最新的 codeline 下開發所應該使用的 build 文件是 dev_build.xml。這個 build 文件是特別編寫的,用於在 preconfigured install JBoss demo server 上運行和調試的開發人員(pentaho-preconfiguredinstall 項目包含 shell JBoss server application)。

dev_build.xml 依賴於 dev_build.properties 文件獲取參數信息。爲適應你的環境,你可能想覆蓋幾種參數。爲設置這些覆蓋,不須要修改 dev_build.properties 文件!你須要建立一個override.properties 文件,並在裏面指定你想覆蓋的參數。這樣當修改這些文件時,你沒必要將你的修改合併進 properties 中。

Target: dev-setup

dev-setup target 是你應該主要關注的 target。一旦你有了 4 個主要 Pentaho 項目的源碼,dev-setup Ant target 建立一個 fully populated,configured 和 deployed 的 JBoss app 服務器,和Pentaho demo 應用。如下是 dev-setup 執行的步驟:

l        編譯全部源代碼

l        建立 pentaho-preconfiguredinstall 項目的一個副本,其是 JBoss app server shell。爲指定這個副本的位置,設置你的 override.properties 文件中的 target.server.dir 屬性。

l        建立 pentaho-solutions 項目的一個副本,其包含 PCI demo 的 sample solutions。爲指定這個副本的位置,在你的 override.properties 文件中設置 target.solutions.dir 屬性。

l        複製全部已編譯的類,.war 文件,datasource 配置文件和 miscellaneous jars 到目標服務器目錄中,這些文件都是 JBoss 運行 Pentaho 應用服務器所必需的。

l        將 HSQLDB driver jar 複製到 pentaho-data 項目。pentaho-data 項目被設置做爲一個 stand alone 數據庫服務器,這就是爲何 driver jar 須要在指定的位置可用,這樣啓動和關閉腳本就能夠正常工做。

l        修改 pentaho web 應用中的 web.xml 文件,其致使 JBoss 服務器自動從新加載 web 應用並當即應用修改。

第一次運行 target 時,執行以上全部的 actions,設置一個可調試的環境。在以後的運行中,僅替換被修改的文件。當你修改了源碼,並想在 JBoss 應用服務器中測試這些修改時,就應該運行這個target。

Target: clean-target-server

這樣構建 dev_build targets 的緣由是可確保你的代碼修改可當即在調試環境中生效。你也能確保你調試的環境中,沒有以前的運行或構建中的殘留文件。clean-target-server target 刪除整個的target server 目錄,這樣下次運行 dev-setup 時,你再次有了一個乾淨的配置。

其餘重要的 Property Overrides

爲了在你的環境中成功運行構建,你應該在你的 override.properties 文件中添加幾個其餘的屬性:

l        javac.path - 指定你的 Java 編譯器 (javac.*) 的路徑,實例:javac.path =d :/tools/j2sdk1 .4.2_07/bin/javac

l        java1.4.home - 若是安裝了 java 1.5 SDK 和 1.4 SDK,java 1.5 是你的默認,指定 java1.4 home,由於平臺 SDK 推薦配置是 1.4。實例:java1.4.home=D:/tools/j2sdk1.4.2_07

 

06.  JUnit 調試

This page last changed on Apr 05, 2007 by dkincade.

在 Pentaho 項目中走查代碼的最簡單的方法就是使用一個 JUnit 測試用例(若是你不熟悉 JUnit,你可今後處獲取更多信息,http://www.junit.org/index.htm)已經有不少 JUnit 測試用例用以測試平臺的單獨的組件功能和子系統了。其位於 pentaho 項目的源碼樹:./server/pentaho/test/org/pentaho。Eclipse 有運行JUnit 測試的內置功能。僅僅選擇你想運行的測試用例(開源文件),從 Eclipse的菜單中選擇 Run. .New JUnit Test,按照 Eclipse 對話框中的提示進行操做便可,那些提示很直截了當。

 

07. 調試 Standalone Platform 項目

This page last changed on Mar 02, 2007 by gmoran.

Standalone 項目,pentaho-standalone 是一個實例應用,它利用了平臺的能力,而沒有使用一個 J2EE 應用服務器。項目包含一個 Java 應用,其運行 2 個 action sequences,將每一個的結果寫進一個文件。

在這一節中,咱們將運行如下步驟:

1.       設置 standalone 項目;

2.       解釋使的 standalone 配置生效的代碼和資源;

3.       最後,在 sample 代碼上放一個斷點,演示 standalone 應用的調試。

Standalone Project 設置

Standalone 項目依賴於 pentaho 項目。爲使用 Standalone 項目,你必須首先運行一個 Ant target, sample-setup,其將爲咱們的實例用適當的庫組裝項目。爲設置 Standalone 項目:

1.    從 Eclipse 的Java 透視圖下,選擇 build.xml 文件,其位於pentaho-standalone 項目的根目錄下。對此我選擇使用 Navigator 視圖(默認不可見),有幾個使得文件選擇變得簡易的視圖 – 使用你最喜歡的那個。

2.    右擊 build.xml 文件,選擇 'Run As...' 選項,而後選擇 'Ant Build...' 選項。

3.    出現一個 Ant Build 提示對話框。De-select any pre-selected targets,僅選擇 sample-setup target。

4.    選擇對話框底部的 'Run' 按鈕。你應該能在 Eclipse 的 Console 視圖的腳本中看到 activity log。一旦 target 執行完成,你會看到信息 "Build SUCCESSFUL"。

5. 在 Eclipse Navigator 視圖中,選擇項目的根文件夾:pentaho-standalone。右擊文件夾,選擇 'Refresh' 選項,這將刷新子文件夾,這樣你會看到文件被添加爲 building 項目的結果。

 

如今能夠逐步調試項目了,但首先解釋一下項目的組成吧。

resource/solution 目錄

resource/solution 目錄包含咱們實例的 solution 文件。這些文件很相似於包含在咱們的 demo 中的那些。在咱們的 solution 中有 2 個 action sequences,'Hello World' 和 'Simple Report'。若是你瀏覽resource/solution 目錄,你會看到 action sequences 的文件。

源文件

src 目錄中有以 standalone Java 應用方式執行平臺的源碼。org.pentaho.app.SimpleCase.java 類是運行平臺和咱們 solution 的主類。這個類初始化平臺,運行一個很簡單的 'Hello World' action sequence,而後運行一個很簡單的 JFreeReport action sequence。爲了簡化,2 個 action sequences 的運行結果都寫進文件。

public static void main(String[] args) { try {

Init.initialize ();

SimpleCase sCase = new SimpleCase(); sCase.simpleCase( args );

} catch (Exception e) {

e.printStackTrace ();

}

}

...

public void simpleHelloWorldCase( String outputPath ) {

try {

File f = new File( outputPath + File.separator + "hello _world.txt" );

FileOutputStream outputStream = new FileOutputStream(f);

HashMap parameters = new HashMap();

ISolutionEngine solutionEngine = SolutionHelper.execute( "Simple Case Example", "Hello

World",

"getting-started/HelloWorld. xaction", parameters,

outputStream );

} catch (Exception e) { e.printStackTrace ();

}

org.pentaho.app.Init.java 類僅有一個有趣的方法 – 初始化平臺的方法:

public static boolean initialize() {

try {

// We need to be able to locate the solution files. in this example, we are using the relative path in our project/package.

File solutionRoot = new File( "resource/solution" );

// Create a standalone application context - our application toolbox if you will - passing the path to the solution files.

IApplicationContext context = new

StandaloneApplicationContext (solutionRoot.getAbsolutePath(), new File (".") . getAbsolutePath ());

// Initialize the Pentaho system PentahoSystem.init( context );

return true;

} catch (Throwable t) { t.printStackTrace (); return false;

}

}

 

分步運行 Sample 代碼

在 Eclipse 中逐步調試代碼對你來講應該已經很熟悉了,但此處咱們提供一個實例。在你在 Eclipse 中運行 SimpleCase 類以前,首先你應該啓動 demo 數據庫。爲啓動數據庫:

1.       瀏覽至 pentaho-data 文件夾,經過命令行,或使用你最喜歡的文件瀏覽工具 – Eclipse 以外。

2.       在 pentaho-data 文件夾下,有 Windows OS 和 *nix 平臺下的啓動和關閉腳本。執行適合於你的計算機的啓動腳本(.bat 文件用於 Windows,.sh 文件用於 *nix)。

如今讓咱們設置一個斷點,運行 SimpleCase main() 方法,這樣你能夠看到運行中的開發過程。

1.       切換到 Eclipse Debug 透視圖,若是你沒在那裏。

2.       從 Eclipse 的不少文件瀏覽視圖之一(我使用 Navigator),在 pentaho-standalone 項目中瀏覽至 src/org/pentaho/app/SimpleCase.java,打開那個文件。

3.       在 SimpleCase.java 文件的 73 行設置一個斷點(從右鍵菜單)(注意:若是代碼修改過,這個行號極可能已經改變了。設置斷點的那行就是包含 Init.initialize() 代碼的那行)。

4.       在你的文件瀏覽視圖中右擊 SimpleCase.java 文件,選擇 'Debug As...' 選項,而後 'Java Application' 選項,這將以一個 Java 應用啓動類。

5. 在你的斷點下,程序會中止運行。此處,你可在 Eclipse 中 step into,step over 或繼續運行。額外的調試信息,請注意 Console 視圖。

 

08.  JBoss IDE 調試

This page last changed on Jun 05, 2007 by bseyler.

若是你已經執行了以前的設置步驟,如今就準備好調試平臺了。假設你有咱們此處列出的necessary projects ,並可運行 a configured JBoss server。如下是咱們將執行的步驟:

1.       在 JBoss IDE 中配置一個服務器。咱們將使用它來運行 JBoss 應用服務器,其中平臺被配置爲一個web 應用。

2.       最後,咱們將在平臺 Java 代碼中設置一個斷點,運行 'Hello World' sample solution,從那個斷點走查代碼。

配置 JBoss IDE Server

既然你已經將 pentaho web 應用複製進 pentaho-preconfiguredinstall 項目,是時候啓動 JBoss 應用服務器,並確保一切正常。JBoss IDE 是一個很好的工具。易配置,一旦配置好,你所須要做的就是經過 IDE 啓動服務器,這樣你就可調試 Java 代碼。

 JBoss IDE 2.x.x 中配置一個服務器

 

若是你想運行實例 "Debugging in JBoss Application Server",你須要確保你的計算機上沒有另外一個應用使用端口8080。這是 JBoss 應用服務器的默認端口。你也可改變服務器使用的端口,you do not want to unnecessarily complicate your life at this point。若是端口 8080 被佔用了,推薦在運行應用服務器時,臨時關閉使用端口 8080的應用。

 

這些命令對任何使用推薦環境(Setting Up Your Environment doc 中所述)的人均有效。

爲在 JBoss IDE 中配置一個新服務器:

首先,咱們須要在 Eclipse 首選項裏設置一個 server runtime。

1.       從 Window 菜單打開首選項對話框。

2.       在左邊的樹中找到 'Server | Installed Runtimes'。

3.       在右邊的 pane 中,點擊 'Add' 按鈕。

4.       對於 runtime type,選擇 'JBoss Server Adapter Runtime' under 'JBoss Inc'. (若是有多個選擇,例如 JBoss 4.0 Server Adapeter Runtime,選擇 4.0 版本)

5.  選擇 next。在下一個 pane 中,設置如下參數:

a.       將你的 runtime 命名爲 'PCI Demo'。

b.    這部分很重要!對於 Home 目錄,瀏覽你的 dev_build (or override) properties file 中指定的 target 服務器目錄! 那就是你想調試的服務器,由於那就是 webapp 被配置到的地方(注意:你可確保你獲取了正確的屬性值,經過查看 pentaho/dev_build.properties 文件,並找到了名爲target.server.dir 的屬性值)

c. 將你的 JRE 切換至 1.4 JRE。若是你的 Eclipse 沒有配置 1.4 JRE,請當即配置。

6. 點擊 OK 關閉對話框。

如今咱們可配置一個新的服務器:

1.       切換到 Eclipse Debug 透視圖。

2.       從 Window 菜單,選擇 'Show View' 選項,而後 'Other...' 選項。

3.       會出現一個具備指定視圖的提示對話框。選擇 'Server' 選項,而後是 'JBoss Server View' 視圖。

4.       選擇 OK 按鈕完成。你會看到 JBoss Server View 出如今 Eclipse Debug Perspective 的底部。

5.       右擊 JBoss Server View window pane。選擇 'New... | Server' 選項。

6.       如今你處於 Server 設置嚮導中。以下爲嚮導設置參數:

a.    服務器的主機名:localhost

b.    服務器類型:在 'JBoss Inc' 下,選擇 JBoss AS 4.0

c.    服務器運行時:選擇以前設置的 'PCI Demo' runtime。

d.    選擇 next,將你的服務器命名爲一個你想用的惟一的名字。

e. 選擇 finish。

最後,咱們將定製服務器配置:

1.       在 JBoss Server 視圖中,你應該看見你的新服務器,垂直排列的 2 個 panes。右擊底部的 pane 的服務器的名字,選擇菜單項 'Edit Launch Configuration'。

2.       在新對話框中,切換到 'Start Args' 標籤頁。在 VM 參數區域添加如下參數:-Xms512m -Xmx1028m

3.       在 Source 標籤頁上,點擊 add 按鈕,選擇 pentaho 項目。這將自動將 pentaho 項目中的全部源文件識別爲這個服務器配置的源。

4.       在 JRE 標籤頁中,指定 1.4 JRE,若是尚未選中的話。

如今你應該在 JBoss Server 視圖的列表中看見新服務器的名字。經過右擊 JBoss Server 視圖中的條目啓動和中止 pentaho 服務器。注意!!! 在你啓動服務器以前,爲正確運行,首先你必須爲 demo啓動數據庫。啓動數據庫的指令請參考 hello world。

 JBoss IDE 1.x.x 中配置一個服務器

這些命令對任何使用比推薦環境(Setting Up Your Environment doc 中所述)更老版本的 JBoss IDE 的人均有效。

 

爲在 JBoss IDE 中配置一個新服務器:

1.       切換到 Eclipse Debug 透視圖。

2.       從 Window 菜單中,選擇 'Show View' 選項,而後選擇 'Other...' 選項。

3.       會出現一個具備指定視圖的提示對話框。選擇 'JBoss IDE' 選項,而後選擇 'Server Navigator' 視圖。

4.       選擇 OK 按鈕來結束。你應該看見 Server Navigator 視圖出如今 Eclipse Debug 透視圖的底部。右擊 Server Navigator window pane。選擇 'Configuration...' 選項。

5.       會出現一個提示配置對話框。在左邊的 pane 中,選擇 'JBoss 4.0.x' 選項,而後選擇左邊的 pane 中的 New 按鈕。你應該看到一個相似於此處的對話框。輸入 'pentaho-server' 做爲你的新配置的名字。

6.       選擇 'Browse...' 按鈕,瀏覽至 pentaho-reconfiguredinstall 文件夾。將這個文件夾設置爲 JBoss 4.0.x Home Directory。

7.       選擇 'default' 做爲服務器配置。

8.       選擇 'Apply' 按鈕保存這個配置。

9.       切換到對話框中的 'Source' 標籤頁。

10.    選擇 'Add' 按鈕,而後從下一個對話框中選擇 'Java Project',而後從最後一個對話框中選擇'pentaho'。選擇 OK。

11.    選擇 'Apply' 按鈕保存這個配置。

12.    選擇 'Close' 按鈕關閉對話框。如今你應該看見你的 Server Navigator 視圖中列出的 'pentaho-server'。經過右擊 Server Navigator 視圖中的 pentaho-server 條目,你可啓動和中止 pentaho-server。注意!在你啓動 pentaho-server 以前,首先你必須啓動數據庫,使得 demo 可正常運行。啓動數據庫的指令請參考下一節。

逐步調試 'Hello World'

如今須要作的就是啓動平臺,設置斷點,觀察其運行狀況!在你企圖從 Eclipse 中啓動 pentaho-server 以前,首先你必須啓動 demo 數據庫。

爲啓動數據庫:

1.       經過命令行或使用你最喜歡的文件瀏覽工具 – Eclipse 以外 – 瀏覽到 pentaho-data 文件夾。

2.       在 pentaho-data/demo-data 文件夾下,有 Windows OS 和 *nix 平臺上的啓動和關閉腳本。執行適合於你的計算機的啓動腳本(.bat 文件用於 Windows,.sh 文件用於 *nix)。

如今啓動 pentaho-server:

1.       從 Eclipse Debug 透視圖,Server Navigator 視圖中(或 JBoss Server View),右擊 pentaho-server 條目。

2.       選擇 'Debug' 選項。在 Console 視圖中滾動查看,你會看到不少啓動消息和警告。只要啓動時的最後一條消息是 "Pentaho BI Platform server is ready.",你就知道平臺已經成功啓動和運行了。

如今讓咱們設置一個斷點,並執行 'Hello World' demo solution,這樣你可看到運行中的開發過程。

1.       切換到 Eclipse Debug 透視圖,若是你尚未打開的話。

2.       從 Eclipse 的不少文件瀏覽視圖之一(我使用 Navigator),在 pentaho 項目瀏覽至 server/pentaho/src/org/pentaho/core/runtime/RuntimeContextBase.java,打開那個文件。

3.       在 RuntimeContextBase.java 文件的 1092 行設置一個斷點(從右鍵菜單)(注意:由於代碼的修改,這個行號極可能會發生變化,應該設置斷點的那行代碼就是包含 executeComponent()的代碼)。

4.       下一步,打開一個 web 瀏覽器窗口,瀏覽至 http ://localhost: 8080/pentaho/ViewAction?&solution =samples&path=getting-started&action= HelloWorld.xaction.

5.       在組件執行結果從服務端發回瀏覽器以前,你在 Eclipse 中的斷點應該被 hit。今後處,你可在 Eclipse 中 step into,step over 或繼續執行。額外的調試信息請觀察Console 視圖。

相關文章
相關標籤/搜索