2009-03-18 12 views
18

Sto facendo questo utilizzando JAXB per unmarshall qualche XML in oggetti Java:JAXB mi dà: java.lang.IllegalArgumentException: è parametro non deve essere nullo

Il mio codice sembra un po 'come questo:

InputStream testMsg = getClass().getResourceAsStream("TestDocumentEvent.xml"); 
Unmarshaller unmarshaller = JAXBContext.newInstance(DocumentEvent.class).createUnmarshaller(); 
DocumentEvent unmarshalled = (DocumentEvent) unmarshaller.unmarshal(testMsg); 

Tuttavia, quando si esegue questo codice ottengo un'eccezione:

java.lang.IllegalArgumentException: is parameter must not be null 

Cosa sta succedendo?

risposta

22

Questo perché lo InputStream che si sta passando a unmarshaller (il parametro 'is', geddit) è nullo, controllare che il nome della risorsa sia corretto.

+2

Lo so, ho risposto alla mia stessa domanda. Ho aggiunto questo perché non c'è molto su google su questo e l'errore non è leggibile – SCdF

+2

Non lo so, mi sembra abbastanza ovvio - se la chiamata unmarshal si lamenta immediatamente che il suo argomento è nullo, cosa è illeggibile a tale proposito? –

+2

Stai dicendo che "IS" è l'abbreviazione di "InputStream" nel reclamo? Sì, è un po 'poco chiaro, ma almeno dal contesto è facile da capire. – Eddie

Problemi correlati