【问题标题】:IllegalAnnotationsException: domain.NewsletterType does not have a no-arg default constructorIllegalAnnotationsException:domain.NewsletterType 没有无参数默认构造函数
【发布时间】:2011-02-23 23:04:01
【问题描述】:

原因:com.sun.xml.bind.v2.runtime.IllegalAnnotationsException:1 个 IllegalAnnotationExceptions 计数 xxx.tools.newsletter.domain.NewsletterType 没有无参数的默认构造函数。 此问题与以下位置有关: 在 xxx.tools.newsletter.domain.NewsletterType 在公共 xxx.tools.newsletter.domain.NewsletterType xxx.tools.newsletter.domain.Newsletter.getType() 在 xxx.tools.newsletter.domain.Newsletter 在公共 xxx.tools.newsletter.domain.Newsletter xxx.commons.user.ws.domain.SweepstakeResponse.getReminderEmail() 在 xxx.commons.user.ws.domain.SweepstakeResponse

at com.sun.xml.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:102)
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:472)
at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:302)
at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1140)
at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:154)
at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:121)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:202)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:363)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
at org.jboss.resteasy.plugins.providers.jaxb.JAXBContextWrapper.<init>(JAXBContextWrapper.java:74)
at org.jboss.resteasy.plugins.providers.jaxb.JAXBContextWrapper.<init>(JAXBContextWrapper.java:99)
at org.jboss.resteasy.plugins.providers.jaxb.XmlJAXBContextFinder.createContextObject(XmlJAXBContextFinder.java:51)
at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBContextFinder.createContext(AbstractJAXBContextFinder.java:129)
at org.jboss.resteasy.plugins.providers.jaxb.XmlJAXBContextFinder.findCachedContext(XmlJAXBContextFinder.java:42)
at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.findJAXBContext(AbstractJAXBProvider.java:52)
at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.getMarshaller(AbstractJAXBProvider.java:127)

【问题讨论】:

  • xxx.tools.newsletter.domain.NewsletterType 是什么样的?它有无参数构造函数吗?
  • NO 它没有默认的无参数构造函数。所以我的问题是,我们可以在不定义无参数构造函数的情况下解决这个问题吗?

标签: spring jaxb resteasy


【解决方案1】:

对于没有无参数构造函数的类,您可以使用 XmlAdapter:

【讨论】:

  • 出于好奇,如果永远不需要从 XML 中解组不可变对象,是否有更简单的方法?即,它只被序列化为到 XML。
猜你喜欢
  • 1970-01-01
  • 2012-12-08
  • 2023-03-20
  • 2016-07-18
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多