JAXB相同的代码不同的行为

时间:2018-05-19 02:01:40

标签: java jaxb

大家好,我有以下代码,在standAlone项目中,unmarshall工作正常,插入其他项目的代码我收到错误。

代码:

JAXBContext jaxbContext = JAXBContext.newInstance(Form.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Form form = (Form) jaxbUnmarshaller.unmarshal(new StringWriter(xmlstring));

错误:

javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"Form"). Expected elements are <{http://www.site1.pt/}Form>

奇怪的是命名空间(http://www.site1.pt/)我没有在表单代码中使用特定的但我在其他项目的其他部分使用,所以为什么当我把这部分代码放在我的其他项目是否假定命名空间?

我有一个名为pt.interfaces的软件包,其中有一个文件package-info.java我的软件包pt.interfaces.form中没有package-info。

我尝试在我的软件包pt.interfaces.form中创建一个package-info.java,如果我更改名称空间(http://www.test.pt/)则错误更改:

javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"Form"). Expected elements are <{http://www.test.pt/}Form>

如果在我的package-info.java(pt.interfaces.form)中我将命名空间更改为空“”你删除它我没有得到错误但是该对象没有xml值。

任何想法? 感谢

0 个答案:

没有答案