2009-09-01 65 views
12

我有一箇舊的J2EE應用程序(J2EE 1.3),它包裝到EAR中,在EAR中有WAR和EJB JAR。現在,其中一個EJB JAR需要引用一些第三方庫JAR,那麼封裝這些JAR的最佳位置是什麼?如何將第三方JAR打包到EJB jar中?

+2

非常好的問題。爲什麼EJB/EAR打包的部署/結構比WAR更難?這應該是一個自動的,非常典型的用例。 – Roboprog 2013-02-20 00:05:52

回答

18

他們去EAR文件,在根目錄,也可以創建一個的lib目錄來存儲的。任何需要引用它們的項目(EJB或WAR)都必須將它們包含在清單文件的 類路徑:中。

耳內容

- log4j.jar 
    - lib 
    - commons-lang.jar 
    - MyEJBProj.jar 
    - MyWAR.war 

MyEJBProj內容

- classes 
- META-INF 
    - MANIFEST.MF 

MANIFEST.MF

Manifest-Version: 1.0 
    Class-Path: log4j.jar lib/commons-lang.jar 
+1

官方文件名是MANIFEST.MF,並且該文件的格式可能相當挑剔。您需要同一行中的所有內容(或者在下面的行中使用單個空格字符作爲前綴以便繼續),並且需要使用「,」分隔路徑。換句話說: 類路徑:log4j.jar,lib/commons-lang.jar – 2009-09-03 05:24:46

+0

更正名稱(編輯以反映該名稱)應該是全部大寫,但類路徑可以簡單地用空格分隔,即使在同一條線。只需確保最後一次輸入後沒有空格,因爲它表示延續。例如,Eclipse會在每行的一個jar文件中寫入/顯示類路徑,並在每行的後面添加一個空格。 – Robin 2009-09-03 13:30:20

+0

不要忘記在MANIFEST.MF的末尾包含兩個換行符。我記得一箇舊的bug,這是必要的,否則上面的一些內容將被忽略... – 2009-09-03 13:36:09