salve, il titolo è un pò trubdolo, ma non so come centrare il problema...panoramica:
Ho implementato un ServletFilter da utilizzare in un progetto già esistente (nello specifico Apache Lenya).
compilata la classe e copiata all'interno di Lenya, con l'opportuna dichiarazione del filter e del filter mapping all'interno del web.xml di lenya, il tutto funziona egregiamente.
Adesso però vorrei richiamare dalla classe del filtro un'altra classe (sempre da me implementata) con i suoi metodi.
Finchè tale classe non fa nulla di particolare (tipo scrivere su file) il tutto funziona perfettamente (mi basta copiarla nella stessa directory di lenya dove c'è il filtro, appartenendo allo stesso package).
Il problema è che appena inserisco codice prettamente "j2ee" all'interno della seconda classe, nel momento del richiamo ottengo un nullpointerexception.
in particolare...prendiamo il caso che io voglia prendere il ServletContextPath...
nel filtro richiamo la seconda classe (MetadataRetriever) così:
MetadataRetriever meta = new MetadataRetriever();
meta.retrieveMetadata();
ed il metodo retrieveMetadata() della classe MetadataRetriever è:
public void retrieveMetadata() throws IOException {
String percorso = getServletContext().getRealPath("");
FileWriter f3 = new FileWriter("c:/path.txt",true);
PrintWriter out3 = new PrintWriter(f3);
out3.println(percorso);
out3.close();
}
ovviamente per utilizzare il metodo getServletContext() la classe MetadaRetriever deve estendere HttpServlet...e qui penso ci sia l'arcano...a questo punto devo definire tale classe all'interno del descriptor di lenya come servlet (anche se in realtà non è che sia una vera e propria servlet, o meglio a me non interessa utilizzarla come tale)...e se sì, come?
o è tutto il metodo sbagliato?
nota: sono un pò alle prime armi con le j2ee, in caso non linciatemi![]()
vi ringrazio anticipatamente e chiedo scusa per la lunghezza del messaggio (nella speranza di essere riuscito a spiegare il problema)![]()

Rispondi quotando
).
{