gpt4 book ai didi

java - 无法理解 JAXB 解码行为

转载 作者:行者123 更新时间:2023-12-04 05:38:03 26 4
gpt4 key购买 nike

引用我的previous post .我有以下代码从文件中读取 XML。

logger.log(Level.INFO, "testSchemaChange");
JAXBContext jaxbContext = JAXBContext.newInstance("com.store.web.ws.v1.model");
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
JAXBElement<BookType> jeBookType = (JAXBElement<BookType>) unmarshaller.unmarshal(new File (BOOK_XML));

BookType bookType = jeBookType.getValue();
logger.log(Level.INFO, "Book recieved: " + bookType.getISBN());

我正在用 Book 播种一个 XML作为我的根元素而不是 BookList .只要我将包的完整路径保留在 JAXBContext.newInstance 中,此示例就可以正常工作.

没多久,我有没有改变
JAXBContext jaxbContext = JAXBContext.newInstance("com.store.web.ws.v1.model");

JAXBContext jaxbContext = JAXBContext.newInstance(BookType.class);
我开始出现异常 SEVERE: unexpected element (uri:"", local:"book"). Expected elements are (none)
有人可以解释为什么会出现这种行为吗?

附:
为了方便起见,我的测试类和 JAXB 生成的类在同一个包中,即 com.store.web.ws.v1.model

最佳答案

您看到的问题是因为 JAXBContext不知道您的 ObjectFactory包含 @XmlElementDecl 的类book 的注释元素。

当您创建 JAXBContext在包名上,它会自动拉入 ObjectFactory类。如果您创建一个 JAXContext在类上,您需要使用 @XmlRegistry 显式包含该类注释(在本例中为 ObjectFactory)。

关于java - 无法理解 JAXB 解码行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11658181/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com