Newsgroup: it.comp.java
Titolo: j2ee e file

Ho letto in giro che non è possibile usare le 
java.io
 (e quindi neanche  
File) con j2ee.
Possibile?
Nel caso così fosse, non c'è modo di raggiungere dei file fissi (devo solo  
leggerli)?
In pratica dovrei montare al volo un'immagine dinamicamente assemblandone  
altre, statiche, sul server (e dato il numero di quest'ultime è  
improponibile avere già tutte le possibili combinazioni)
Grazie
-- 
Manny Calavera
Mail to: anforagimailpuntocom²

 File) con j2ee.
Che intendi per 'j2ee'? Con gli ejb si, non è corretto (nel senso che 
c'e' scritto di non farlo nelle specifiche). C'e' stata una discussione 
sull'argomento qui sul ns tempo fa... dovresti riuscire a recuperarla 
facilmente, l'avevo iniziata io anche se al momento non mi ricordo il 
titolo. Purtroppo, a quanto ne so, non c'e' una soluzione risolutiva 
unica, ma ci sono varie soluzioni alternative (fra cui anche 
infischiarsene delle specifiche e usare i file lo stesso) dipendenti 
dalle proprie necessità.
Qualunque soluzione decidi di adottare, ti consiglio di fare un bel 
manager (un ejb) a cui delegare la lettura fisica dei dati e dal resto 
del programma accederci (ai dati) tramite quello, così ti svincoli dalla 
soluzione-file adottata, e se ad un certo punto decidi di cambiarla non 
devi far altro che cambiare l'implementazione del manager.
bye
DKano

 Che intendi per 'j2ee'?
Bella domanda :)
Quanto alla risposta :
1. A livello di compilazione dovrebbero tendenzialmente essere consentite le
io.
2. A runtime molti app server te le fanno usare, altri ti bloccheranno,
pero' ti bloccano in scrittura eventualmente.
3. A livello architetturale nel j2ee e' proprio vietato scrivere
direttamente con le IO, leggere ci sono molte possibilita
Soluzioni :
a. essendo sola lettura e' tutto + semplice. Per esempio puoi includerli
nell' ear e raggiungerli chiedendo il path al classloader.
b. Una soluzione sporca e veloce anche per scrivere e' l'FTP che su una
scala del j2ee, direi e' j2ee al 40%
c. Le soluzioni 100% j2ee anche per scrivere sono :
c1 . JMS
c2 Corba Server
Ci sono 1000 altri modi, ti ho buttato li i + frequenti
Io userei A
Nicola
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 nell' ear e raggiungerli chiedendo il path al classloader.
Anche se variano? Avevo capito che non erano file fissi, ma forse ho 
capito male io. Mi spiego: se variano, una volta letti-come-risorse non 
è che il buon java se li tiene in qualche modo in cache (o almeno si 
aspetta che siano fissi)?
Mi viene in mente adesso: in effetti io faccio così con dei file di 
configurazione (properties) e ogni volta vengono riletti correttamente, 
ma dipenderà dall'implementazione (uso weblogic)?
bye
DKano

 DKano
ciao Nicola




ahh , divmenticavo, per le tua applicazioni e' vietato, ma per te
chiaramente no, soprattutto mentre sviluppi :)


 "Stage" nella quale esplore gli ear. Mai sia andarci a scrivere dentro
Yep, lo so... ogni tanto la cancello insieme alla 
.wl_noncancellare_blabla quando cambio totalmente applicazione (sempre 
in sviluppo) per evitare che gli rimangano delle schifezzine dentro...
bye
DKano

 direttamente con le IO, leggere ci sono molte possibilita
L'errore che mi si presenta è questo:
java.security.AccessControlException: access denied  
(java.io.FilePermission image read)
java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
java.security.AccessController.checkPermission(AccessController.java:427)
java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
java.lang.SecurityManager.checkRead(SecurityManager.java:871)
java.io.File.list(File.java:935)
java.io.File.listFiles(File.java:1015)
org.apache.jsp.afo_jsp._jspService(org.apache.jsp.afo_jsp:50)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
Ma non mi pare c'entri con quello che tu m'hai detto, o sbaglio?
