【问题标题】:JAXB gives me: java.lang.IllegalArgumentException: is parameter must not be nullJAXB 给我: java.lang.IllegalArgumentException: is parameter must not be null
【发布时间】:2009-03-18 05:41:59
【问题描述】:

我正在使用 JAXB 将一些 XML 解组为 Java 对象:

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

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

发生了什么事?

【问题讨论】:

    标签: java jaxb


    【解决方案1】:

    这是因为您传递给解组器的InputStream('is' 参数,geddit)为空,请检查资源名称是否正确。

    【讨论】:

    • 我知道,我回答了我自己的问题。我添加了这个是因为 google 上没有太多关于这个的信息,而且错误不是那么可读
    • 我不知道,这对我来说似乎很明显 - 如果 unmarshal 调用立即抱怨它的参数为空,那有什么不可读的?
    • 您是说投诉中“IS”是“InputStream”的缩写?是的,这有点不清楚,但至少从上下文中很容易弄清楚。
    • @Jon,如果这个世界是由 Jon Skeets 组成的,我们就不需要 SO,如果你的代表可以通过的话。可悲的是,像我这样的边缘代码骑师仍然偶尔需要帮助。
    • 谢谢 - 很明显,但从未建立联系 - “参数不能为空”对我来说总是听起来像一个语法错误。
    猜你喜欢
    • 2019-02-07
    • 1970-01-01
    • 2020-07-08
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-25
    • 2015-07-18
    相关资源
    最近更新 更多