我使用spring ws来实现我的Web服务。 我在Web服务中收到以下错误 “对于元素测试,没有带有@XmlElementDecl的ObjectFactory” test有一个@XmlElementRef。
在创建jaxb上下文时,我已将ContextPath设置为包名。
我做了以下事情:
我认为在寻找@XmlElementDecl时,它会查找“ObjectFactory”类,然后它无法找到它,如果我将AObjectFactory重命名为ObjectFactory,则无法找到它。
我的问题是:
任何帮助都会很棒。
答案 0 :(得分:0)
在创建jaxb上下文时,我使用了ContextPath设置为 包名。
当您通过上下文路径创建JAXBContext
时,JAXB实现将查找名为ObjectFactory
的类,该类使用@XmlRegistry
进行注释。
我有多个WSDL,所以ObjectFactory被覆盖了。
通常每个命名空间/包应该有一个ObjectFactory
。如果ObjectFactory
变得越来越糟,也许你试图强迫一切都使用相同的包名。
所以我只是用WSDL重命名了objectfactory前缀。 A.wsdl将有 AObjectFactory等所以我没有任何ObjectFactory类。
当使用@XmlRegistry
注释的类被称为ObjectFactory
之外的其他内容时,您需要:
jaxb.index
的文本文件,其中包含使用@XmlRegistry
注释的所有类的简称。JAXBContext
注释的生成类的@XmlRegistry
。