Java EE - skladowanie plikow

0

Witam

Pisze program, ktory laczy sie z EJB i pobiera od niego pliki. EJB natomiast wczesniej laczy sie z serwerem np pocztowym i pobiera wiadomosc w tym przypadku z zalacznikiem. Tresc wiadomosci zapisywana jest do bazy danych, natomiast gdzie moge skladowac zlacznik, ktorego zawartoscia moga byc obrazy, audio, video itd? Jest jakies miejsce w serwerze JEE np glassfish gdzie moge zapisywac pliki?

0

Ze specyfikacji EJB3, str. 545, pkt 21.1.2 Programming restrictions:

• An enterprise bean must not use the java.io package to attempt to access files and directo-
ries in the file system.
The file system APIs are not well-suited for business components to access data. Business components
should use a resource manager API, such as JDBC, to store data.

Aby byc w zgodzie ze specyfikacja teroretycznie powinienes napisac wlasny resource manager dla systemu plikow, poszukaj moze juz jakies sa. Teoretycznie moze sie zdarzyc ze jakis kontener ejb proby odwolania sie do java.io z beans zakonczy wyjatkiem. Resource manager bedzie mogl sie odwolac do java.io jak bedzie chcial, one sa uprzywilejowane. Pamietaj przy tym ze ciezko dosc bedzie napisac resource managera dla systemu plikow ktory jest transakcyjny. Tego problemu nie masz jak bys np uzyl bazy danych.

0

No to sprawa sie komplikuje :/
Przechowywanie w bazie plikow tez chyba nie jest zbyt dobrym pomyslem. Np co z plikami ktore maja 10 lub nawet 100 mb?

0

http://sourceforge.net/projects/filera/ - jakas implementacja na szybko znaleziona na google
http://stackoverflow.com/questions/1357667/how-to-access-the-file-system-from-an-ejb-3 - 3 glowny post od gory pokazuje jak zapisac byte[] do JNDI

0

Przechowywanie w bazie plikow tez chyba nie jest zbyt dobrym pomyslem. Np co z plikami ktore maja 10 lub nawet 100 mb?

A to niby dlaczego? W bazach danych są typy BLOB i CLOB przeznaczone właśnie do tego celu. W rzeczywistości i tak baza zapisuje dane na dysku, więc pliki też zapisze. Dla tych typów działa to tak, że żeby optymalizować zapytania są one przechowywane w pewnym sensie poza tabelą, tak jak pliki, a w tabeli jest tylko referencja.

1 użytkowników online, w tym zalogowanych: 0, gości: 1