我有一個JavaEE應用程序需要訪問文件以獲取有關安裝的某些信息。EJB中全局訪問的屬性
此訪問是隻讀的,我不需要在應用程序內更改該文件,即我不需要直接「文件」,只需要它的內容(一個字節數組)。
使用文件系統的EJB存在限制。我確實瞭解與此相關的問題,但我無法找出解決方案。
文件路徑應該由用戶配置,但不需要跟蹤對文件內容的更改。一旦加載,它將保持不變,除非用戶選擇另一個文件。所以,我無法將它打包在應用程序存檔中。
這種基於文件的方法是很久以前由我們擁有的一些遺留系統做出的決定。現在沒有可行的方法來改變它,即我需要我的JavaEE應用程序使用該文件(至少一次)來加載它的內容。
另一個限制是該文件不能保存在數據庫中。
我該如何做到這一點,而不違反文件系統訪問的EJB限制?
我想過用戶上傳文件到服務器,然後在服務器上保存這些信息。但我該怎麼做?該信息應該是全局可訪問的,包括服務器的多個實例(例如,在集羣體系結構中)。
用戶應該配置一次該文件(不一定在主應用程序內,它可能是其他應用程序只是配置此)。即使服務器重新啓動,仍然可以訪問文件的內容,而無需用戶進一步配置。
我在GlassFish v2.1.1服務器上使用EJB 3.0規範的JavaEE 5。
謝謝, Thiago。
有趣的需求,爲什麼你不能堅持數據庫中的數據?用戶現在是否將文件上傳到每個集羣成員? – home
我無法將其保存在數據庫中,因爲此文件可能包含訪問它的信息。所以我沒有辦法在沒有獲取文件內容的情況下訪問官方數據庫。順便說一下,如果我只是爲了這個目的而使用簡單的數據庫(比如H2),那就沒問題。用戶只能上傳文件一次。今天我們直接訪問文件系統,違反了限制。 –
如果今天有效,爲什麼要改變它?雖然這不是一個好習慣,但我已經看到許多基於EJB的應用程序正在訪問文件系統...... – home