2010-04-19 14 views

risposta

20

Si ottiene questa eccezione quando si utilizza il metodo di produzione JAXBContext.newInstance(String), in cui si passa il nome del pacchetto come argomento. Questo fa richiedere lo ObjectFactory per essere lì, altrimenti, JAXB non sa quali classi elaborare.

Se non si dispone di uno ObjectFactory, è necessario invece JAXBContext.newInstance(Class...) passare l'elenco esplicito di classi annotate da aggiungere al contesto.

+1

abbiamo sempre lo stesso elemento principale. Dalla radice abbiamo una grande gerarchia di elementi classes/xml. Quindi possiamo semplicemente fare 'JAXBContext.newInstance (OurRoot.class)'? O dobbiamo passare in una lista di * tutti * i nostri corsi? –

+2

@Marcus: in genere è necessario passare solo nella classe root, sì, a meno che non si abbiano associazioni polimorfiche nelle annotazioni, nel qual caso è necessario inoltrarle anche quelle. I metodi generati in 'ObjectFactory' possono sembrare un po 'strani e, nella maggior parte dei casi, non è necessario utilizzarli affatto, puoi semplicemente creare un'istanza direttamente. Sono molto utili per creare wrapper 'JAXBElement'. – skaffman

Problemi correlati