2010-04-19 75 views

回答

20

当您使用工厂方法JAXBContext.newInstance(String)时,您会得到该异常,您将包名称作为参数传入。这确实要求ObjectFactory在那里,否则,JAXB不知道要处理哪些类。

如果您没有ObjectFactory,则需要使用JAXBContext.newInstance(Class...),而不是传入带注释的类的显式列表以添加到上下文中。

+1

我们总是有相同的根元素。从根目录我们有一个很大的classes/xml元素层次结构。那么我们可以只使用'JAXBContext.newInstance(OurRoot.class)'?或者我们是否需要传递所有*我们课程的列表? – 2010-04-19 13:33:31

+2

@Marcus:通常你只需要传入根类,除非在注释中有多态关联,在这种情况下,你还需要传递它们。在'ObjectFactory'中生成的方法看起来有点奇怪,在大多数情况下,你根本不需要使用它们,你可以直接实例化。它们对创建'JAXBElement'包装非常有用。 – skaffman 2010-04-19 13:47:43

相关问题