Newsgroup: it.comp.java
Titolo: Servlet con classe File [] array = root.listFiles(); non va su WebSphere AS400

Buongiorno a tutti,
ho scritto una semplice servlet che assegna ad una variabile di tipo
String il percorso di una determinata directory, con lo scopo finale di
ricevere un array contenente l'elenco di directory e files presenti
nella directory indicata.
Eseguo la servlet su un server tomcat in localhost sul mio pc e tutto
funziona perfettamente.
Installo il tutto sull'application server di produzione, che è
Websphere su AS400 al release V5R2, è questo non riesce a contattare
la cartella indicata in nessun modo.
Premetto che la directory da rintracciare si trova su un server windows
2000 e che la stringa l'ho costruita in questo modo :
String homeDirectory =
"\\\\NomeServer\\Cartella\\"+azienda+"\\"+codice;
Ho provato più volte a modificare la stringa indicando il server con
l'indirizzo IP, cambiando la struttura da windows a unix (ossia con le
barre / anziche \) ma continua a non riconoscere il percorso.
Potete aiutarmi ?
Grazie

 Potete aiutarmi ?
Senza codice e' difficile dare risposte precise...
Comunque, se usi *solo* la classe File, *non* puoi accedere 
a directory remote, a meno che questo non siano "montate" 
in qualche modo sul file system locale (o meglio, il poterlo 
fare o meno e' "system dependent" e quindi intrinsecamente 
*non* portabile).
Ciao!
Roberto
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Il codice è il seguente:
package utility;
import javax.servlet.ServletException;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.*;
import personale.*;
public class SelezioneFileServlet extends HttpServlet {
	public void doPost (HttpServletRequest request, HttpServletResponse
response) {
		HttpSession sessione = request.getSession(true);
		Dipendente utente =
(Dipendente)sessione.getAttribute("utenteOnline");
		int azi = utente.getAzienda();
		int cod = utente.getCodice();
		String percorso = request.getParameter("rootDirectory");
		String percorsoPrecedente = request.getParameter("rootPrecedente");
		if(percorso == null){percorso = homeDirectory;}
		if(percorsoPrecedente == null){percorsoPrecedente = homeDirectory;}
		File root = new File(percorso);
		File [] array = root.listFiles();
		if(array == null){System.out.println("Peccato hai sbajato");}
		else
		if(array.length==0){System.out.println("Peccato hai sbajato
ancora");}
		try {
			sessione.setAttribute("homeDirectory", homeDirectory);
			sessione.setAttribute("rootDirectory", percorso);
			sessione.setAttribute("rootPrecedente",percorsoPrecedente);
			sessione.setAttribute("listaFile", array);
			response.sendRedirect("IndexCartella.jsp");
		}
		catch (java.io.IOException e) {
			System.out.println(e.getMessage());
		}
	}
//-----------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------
	public void doGet (HttpServletRequest request, HttpServletResponse
response) {
		HttpSession sessione = request.getSession(true);
		doPost( request, response );
	}
//-----------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------
}

 Il codice è il seguente:
[...]
Si', come supponevo utilizzi la classe File, che non va bene
se devi accedere ad una share win32 o samba da una macchina che
non la "monta" direttamente.
Dai un'occhiata alla libreria commons-vfs:
http://jakarta.apache.org/commons/vfs/
http://jakarta.apache.org/commons/vfs/api.html
Ciao!
Roberto

Grazie in ritardo (non ho avuto modo di metterci le mani prima) per il
suggerimento. Sono riuscito a farlo funzionare con la libreria JCIFS,
che peraltro già avevo.
Grazie di nuovo e auguri di Buone Feste.
Aldo