Newsgroup: it.comp.java
Titolo: Convertire file XML in InputStream

Buongiorno,
devo convertire un file XML in InputStream in modo da avere un oggetto
e fare altre cose.
Questo è il frammento di codice, il problema è che il file XML non può
essere localizzato (ovviamente è nel classpath, ho provato anche ad
usare il percorso assoluto):
//START
InputStream stream;
stream = ClassLoader.getSystemResourceAsStream("/com/home/resources");
JAXBContext context = JAXBContext.newInstance(GetChartRequest1.class);
Unmarshaller unmarsh = context.createUnmarshaller();
GetChartRequest1 req = (GetChartRequest1)unmarsh.unmarshal(stream);
//END
Qualche suggerimento ?
Grazie,
Ale

 stream = ClassLoader.getSystemResourceAsStream("/com/home/resources");
Prova con:
InputStream stream = 
this.getClass().getClassLoader().getResourceAsStream("com/home/resources");
-- 
Lucio Benfante
JUG Padova           
http://www.parancoe.org
 ...have a look at it!
www.jugpadova.it
 
http://www.jugevents.org

 
Ops, � partito troppo presto:
InputStream stream =
this.getClass().getClassLoader().getResourceAsStream("com/home/resources/miofile.xml");


 stream = ClassLoader.getSystemResourceAsStream("/com/home/resources");
Prova con:
stream = this.getClass().getResourceAsStream ("/com/home/resources") ;
Ma il file XML si chiama "resources", senza estensione?
Y.


Scusate, ho dimenticato il nome del file (es. simple.xml).
Ho provato come dite voi, ma "stream" è sempre "null"; aggiungo che
sono in dentro il main (statico) e sto provando in questo modo visto
che chiaramente "this" non funzionava, ma non cambia niente:
////////////////
public class MiaClasse{
public stativ void main([]String args){
...
InputStream stream;
stream = new MiaClasse().getClass().getClassLoader
().getResourceAsStream("/com/home/resources/simple.xml");
JAXBContext context = JAXBContext.newInstance(GetChartRequest1.class);
Unmarshaller unmarsh = context.createUnmarshaller();
GetChartRequest1 req = (GetChartRequest1)unmarsh.unmarshal(stream);
...
}
}
////////////////
Ho tentato anche in questa versione con il percorso assoluto ("C:/Dev/
Java/Chart/com/home/resources/simple.xml"), ma nada

 ().getResourceAsStream("/com/home/resources/simple.xml");
stream = 
MiaClasse.class.getClassLoader().getResourceAsStream("com/home/resources/simple.xml");
nota che non c'� nessuno / all'inizio del path della risorsa.


 nota che non c'� nessuno / all'inizio del path della risorsa.
Io uso
stream =
this.getClass().getResourceAsStream("/com/home/resources/simple.xml") ;
E funziona, sia che il file sia sepolto dentro a un JAR sia che sia nel
filesystem.
Boh...
	Y.

 
Se /com/home/resources e' una directory, getSystemResourceAsStream vuole 
il nome del file come argomento.
Se la directory che contiene l'xml e' gia' nel classpath, allora al 
metodo getSystemResourceAsStream devi passare solo il nome del file 
senza percorso, quel metodo ricerca i nomi nelle directory o jar citati 
nel classPath, per cui la directory che citi nell'argomento deve essere 
relativa ad una delle directory  nel classpath.
-- 
Dr.Ugo Gagliardelli,Modena,ItalyCertifiedUindoscrasherA�ejoAlcoolInside
Spaccamaroni andate a cagare/Spammers not welcome/Spammers v�o � merda
Spamers iros a la mierda/Spamers allez vous faire foutre/Spammers loop
schijten/Spammers macht Euch vom Acker/Spamerzy wypierdalac'

il 29/10/2009 12.53, Scrive yossarian 37952400:

Funziona solo se nel classpath hai messo anche la radice del filesystem, 
ad esempio, se c
lasspath=/;/com/home/resources;
funzionera' sia con:
getResourceAsStream("/com/home/resources/simple.xml")
che con
getResourceAsStream("simple.xml")
