首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >元素没有带有@XmlElementDecl的ObjectFactory

元素没有带有@XmlElementDecl的ObjectFactory
EN

Stack Overflow用户
提问于 2015-01-06 14:17:19
回答 1查看 3.9K关注 0票数 1

我正在使用spring来实现我的web服务。我在web服务中得到以下错误:“元素测试没有@XmlElementDecl的ObjectFactory”测试有一个@XmlElementRef。

在创建jaxb上下文时,我使用了ContextPath设置为包名。

我做了以下几件事:

  1. 使用xjc解析将WSDL转换为pojos。
  2. 我有多个WSDL,所以ObjectFactory被覆盖了。因此,我只是用WSDL重命名了对象工厂前缀。A.wsdl将有AObjectFactory等,所以我没有任何ObjectFactory类。

我认为在寻找@XmlElementDecl时,它会查找" ObjectFactory“类,然后它就找不到它,因为如果我将AObjectFactory重命名为ObjectFactory,这是可行的。

我的问题是:

  1. @XmlElementRef不能引用我创建的重命名对象工厂吗?
  2. @XmlElementRef可以避免吗?
  3. 我们能要多个ObjectFactories吗?
  4. 另外,如果我们根本不创建ObjectFactories,那么@XmlElementRef和@XmlElementDecl是如何工作的。

任何帮助都会很好。

EN

回答 1

Stack Overflow用户

发布于 2015-01-06 14:25:58

在创建jaxb上下文时,我使用了ContextPath设置为包名。

当您根据上下文路径创建JAXBContext时,JAXB实现将查找一个名为ObjectFactory的类,该类使用@XmlRegistry进行注释。

我有多个WSDL,所以ObjectFactory被覆盖了。

通常,每个名称空间/包应该有一个ObjectFactory。如果ObjectFactory变得过于烦躁,那么您可能会试图将所有内容都强制使用同一个包名。

因此,我只是用WSDL重命名了对象工厂前缀。A.wsdl将有AObjectFactory等,所以我没有任何ObjectFactory类。

当用@XmlRegistry注释的类被称为ObjectFactory以外的东西时,您需要这样做:

  1. 在与域模型相同的包中包含一个名为jaxb.index的文本文件,该包包含带有@XmlRegistry注释的包中所有类的简短名称。
  2. 引导用@XmlRegistry注释的生成类的@XmlRegistry
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27800573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档