2009-06-03 59 views
0

我的第一篇文章,所以對我來說很容易。引用JAXB罐 - 最佳實踐

我在尋找的建議對組織和引用第三方jar文件在我的J2EE Web應用程序中使用。我需要組織和參考的罐子是JWSDP-2.0 JAXB api罐子。

我使用Eclipse和Tomcat 5.5。我的Web應用程序與Web服務交換XML,因此需要使用JWSDP-2.0中的JAXB API進行一些XML編組和解組。

我已經下載了JWSDP-2.0並安裝到了我的電腦上。我現在試圖弄清楚在我的機器上的eclipse中以及我的機器和最終的測試和生產服務器中的Tomcat中,使其中包含的必要jar文件可用於我的Web應用程序的最佳方式。

我開始只是.jar文件複製到我的項目的WEB-INF/lib文件夾。這意味着當部署到Tomcat時,這些jar文件現在可以在.war中導出。然而,我不喜歡這樣,因爲jar文件來自JWSDP-2.0中的一些不同的庫,並且像這樣拷貝它們意味着它們都被放在一起,而不是像JAXB,JAXP,SAAJ等那樣很好地分離。 ,有一些名稱衝突,例如,我的網絡應用程序已經包含舊的XML解析罐,如xalan.jar,它們已被Web應用程序的不同部分使用。

然後,我刪除了所有這些jar,並在eclipse中創建了一系列用戶庫,例如「jwsdp-2.0_jaxp」,「jwsdp-2.0_jaxb」,它們從WSDP-2.0安裝中的位置引用jar。這對於在eclipse中編譯我的web應用程序來說工作得很好,但是現在我需要將這些jar提供給Tomcat,並且我有點卡住了最好的方式來執行此操作。

因此,在基本層面上,我的問題是我如何才能在Tomcat中引用的jar文件?

更一般地,我在尋找最佳實踐一些建議在項目着眼參考,幷包括第三方的jar順利部署到服務器。

如果任何人都可以提出任何好的文章/書籍/對代碼的組織和部署resorces,這將有助於我學習的最佳做法這種情況的,將是巨大

乾杯提前。

回答

3

的幾點這裏:

  • 如果你在你的WAR文件爭食罐子,那麼你是在自找麻煩。您應該理清您的應用程序需要哪些應用程序,然後放棄其他應用程序。否則,你冒着tomcat加載「錯誤」類的風險。
  • JWSDP 2.0 非常老了,包含JAXB的一個老的預發佈版本。我強烈建議使用最新的JAXB JAR(從http://jaxb.dev.java.net),因爲早期訪問的JAXB2遇到很多問題。
  • 儘管您的WEB-INF/lib具有結構化的目錄佈局可能不錯,但這並不重要,因爲這是您的構建工件。只要您從結構化存儲庫中獲取JAR,您就不應該覺得需要在WAR中保留該結構。 Tomcat不在乎。事實上,通過將它們全部放在一個目錄中來獲得名稱衝突是一個警告,您需要對這些衝突進行排序。