Java jax-ws-web服务中的ObjectFactory子类化问题
在jax-ws-web服务中,我无法直接访问JaxbContext对象。JaxbContext使用ObjectFactory类。我试着扩展它(如中所示)。我将生成的代码放入Java jax-ws-web服务中的ObjectFactory子类化问题,java,jaxb,Java,Jaxb,在jax-ws-web服务中,我无法直接访问JaxbContext对象。JaxbContext使用ObjectFactory类。我试着扩展它(如中所示)。我将生成的代码放入ObjectFactoryBase,然后添加 public class ObjectFactory extends ObjectFactoryBase {//.. overriden methods} 但是,发布到weblogic时出现了IllegalAnnotationsException,因为它在ObjectFactor
ObjectFactoryBase
,然后添加
public class ObjectFactory extends ObjectFactoryBase {//.. overriden methods}
但是,发布到weblogic时出现了IllegalAnnotationsException
,因为它在ObjectFactoryBase
中找不到特定的@xmlementdecl
。当我将带有此@xmlementdecl
的方法移动到ObjectFactory
时,它会工作
添加@xmlsealse({ObjectFactoryBase.class})
也没有什么好运气
编辑:我现在发现生成的ObjectFactory甚至没有被jaxws web服务使用。因此,上述错误消息不再那么相关。你知道为什么它是生成的而不是使用的吗
有什么想法吗?JAXB对象工厂是奇怪的野兽。你的问题有很多方面,所以我将用一个项目清单来回答:
- JAXB1依赖ObjectFactory来创建绑定类的实例,但使用JAXB2,一切都是POJO,ObjectFactory变得基本上不必要。它仍然由XJC生成,部分原因是向后兼容
- ObjectFactory上的注释非常复杂且不明显,但由于它是一个生成的类,所以这通常并不重要,而且大多数人都不看它
- ObjectFactory有时仍然很有用,因为它为需要
包装器的绑定类提供工厂方法,并且使用提供的工厂方法比手工操作容易得多李>JAXBElement
- JAXWS web服务可能选择不使用ObjectFactory,因为严格来说它不是必需的。但是,JAXBContext仍然可以加载和解析它,这取决于上下文的初始化方式
- 我从未尝试过自己创建ObjectFactory;如果模型是由XJC生成的,那么生成的ObjectFactory通常就足够了,如果您有一个手工编写的JAXB模型,ObjectFactory通常是完全不必要的
- JAXB1依赖ObjectFactory来创建绑定类的实例,但使用JAXB2,一切都是POJO,ObjectFactory变得基本上不必要。它仍然由XJC生成,部分原因是向后兼容
- ObjectFactory上的注释非常复杂且不明显,但由于它是一个生成的类,所以这通常并不重要,而且大多数人都不看它
- ObjectFactory有时仍然很有用,因为它为需要
包装器的绑定类提供工厂方法,并且使用提供的工厂方法比手工操作容易得多李>JAXBElement
- JAXWS web服务可能选择不使用ObjectFactory,因为严格来说它不是必需的。但是,JAXBContext仍然可以加载和解析它,这取决于上下文的初始化方式
- 我从未尝试过自己创建ObjectFactory;如果模型是由XJC生成的,那么生成的ObjectFactory通常就足够了,如果您有一个手工编写的JAXB模型,ObjectFactory通常是完全不必要的
jax ws
,我只是不知道ObjectFactory
类在哪里?!什么罐子装的?谢谢,回答得很好,谢谢。顺便问一下,您是否已经看过新的(?)@UsesJAXBContext注释以及jaxws@WebService?它看起来很有希望,因为它提供了完全的控制,可能也在ObjectFactory上。我不明白您在这里试图做什么,因为我还在学习jax ws
,我只是不知道ObjectFactory
类在哪里?!什么罐子装的?非常感谢。