2011-08-30 47 views
1

在我的應用程序中,我有一個位於CLASS_PATH中的目錄,並存儲了jar文件。我使用ATG,因此必須在我的.class文件中使用適當的文件來創建組件(在這種情況下它是servlet)。所以我需要我的webapp.war在我的CLASS_PATH direcory中。我把這個戰爭檔案,但它不工作。我怎樣才能把我編譯的servlet類放到這個目錄中?是否有可能將war檔案作爲庫使用?

當然,這不是好主意,只能從檔案:)把這個編譯的類

回答

0

在ATG,類路徑由可以在其中構建耳朵的方式設置開始。 ATG中的每個模塊都有一個MANIFEST文件,它指定一個名爲「ATG Classpath」的屬性。該屬性的值用於在運行時構造類路徑。因此,如果您將類文件的路徑作爲此屬性的值包含在內,ATG會在創建耳朵時自動在類路徑(runAssembler,更具體)中設置它。當部署耳朵時,Jboss會將其拾起。

1

我知道你在尋找的是一個custom class loader,適用於處理WAR文件。這樣的類加載器會解壓縮或查看WAR文件,以提取類文件。

我從來沒有聽說過任何人從WAR文件中加載,但它不應該是很難實現。

+0

這很有趣,但我不僅需要運行時的類文件。屬性文件它的txt文件,我想寫如下:$ class = com.myapp.webap.HelloServlet – Oleksandr

+0

我想你可以使用自定義類加載器來實現。我不是Java專家,但我只是玩一個Stackoverflow。 :) –

+0

是的,也可以用類加載器讀取屬性文件。 –

1

您的類加載器在war中找不到servlet類,因爲它們在WEB-INF/classes中。

嘗試解壓和WEB-INF/classes目錄複製到類路徑的位置

+0

謝謝。這是工作,但它只是一個臨時解決方案。你認爲我應該將所有的servlet從戰爭中移動到另一個項目(模塊)並將它打包在jar中嗎?我找不到另一個沒有hackaing的方式.... – Oleksandr

相關問題