2009-03-18 6 views
18

Я делаю это с помощью JAXB для маршализацию некоторые XML в объекты Java:JAXB дает мне: java.lang.IllegalArgumentException: это параметр не должен быть пустым

Мой код выглядит немного как это:

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

Однако, когда я запускаю этот код я получаю исключение:

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

Что происходит?

ответ

22

Это потому, что InputStream вы переходите к параметру unmarshaller ('is', geddit) равно null, проверьте правильность имени ресурса.

+2

Я знаю, я ответил на свой вопрос. Я добавил это, потому что об этом не так много, и ошибка не такая читаемая. – SCdF

+2

Я не знаю, мне кажется довольно очевидным - если немеарный вызов сразу же жалуется, что его аргумент равен нулю, то что нечитаемо об этом? –

+2

Вы говорите, что «IS» не подходит для «InputStream» в жалобе? Да, это немного неясно, но, по крайней мере, из контекста легко понять. – Eddie