JAXB给我:java.lang.IllegalArgumentException:参数不能为null

SCd*_*CdF 19 java jaxb

我这样做是使用JAXB将一些XML解组为Java对象:

我的代码看起来有点像这样:

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

但是,当我运行此代码时,我得到一个异常:

java.lang.IllegalArgumentException: is parameter must not be null
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

SCd*_*CdF 26

这是因为InputStream您传递给unmarshaller('is'参数,geddit)为null,请检查资源名称是否正确.

  • 我知道,我回答了自己的问题.我添加了这个,因为谷歌没有太多关于这个,错误是不可读的 (2认同)
  • 我不知道,对我来说这似乎很明显 - 如果解雇电话立即抱怨它的论点是空的,那有什么不可读的呢? (2认同)
  • 您是说"IS"是投诉中"InputStream"的缩写?是的,这有点不清楚,但至少从背景来看很容易弄明白. (2认同)
  • 谢谢 - 显而易见的一个,但从未建立连接 - "参数不能为空"总是听起来像语法错误给我. (2认同)