在jax-ws Web服务中,我无法直接访问JaxbContext对象。 JaxbContext使用ObjectFactory类。我尝试扩展它(比如Jaxb Adding Behaviors)。我将生成的代码放在ObjectFactoryBase
中,然后添加
public class ObjectFactory extends ObjectFactoryBase {//.. overriden methods}
但是,在发布到weblogic时会出现IllegalAnnotationsException
,因为它无法在@XmlElementDecl
中找到某个ObjectFactoryBase
。当我将此方法@XmlElementDecl
移动到ObjectFactory
时,它可以正常工作。
添加@XmlSeeAlso({ ObjectFactoryBase.class })
也没有运气。
编辑:我现在发现jaxws Web服务生成的ObjectFactory 甚至没有使用。所以上面的错误信息不再那么相关了。知道它为什么生成但没用过吗?
有什么想法吗?
答案 0 :(得分:4)
JAXB ObjectFactories是奇怪的野兽。你的问题有很多方面,所以我只想回答一个子弹列表:
JAXBElement
包装器的绑定类提供工厂方法,并且使用提供的工厂方法比手动执行此操作要容易得多。