Abhishek Rawat created CXF-6564:
-----------------------------------
Summary: JAXB can't handle interfaces.
Key: CXF-6564
URL: https://issues.apache.org/jira/browse/CXF-6564
Project: CXF
Issue Type: Bug
Components: JAXB Databinding
Affects Versions: 3.1.2
Reporter: Abhishek Rawat
I have this particular payload:
@XmlRootElement(name = "data")
@XmlAccessorType(XmlAccess.Field)
public class ResponsePayload{
@XmlElement(name = "messages")
@Setter
@Getter
private List<Map.Entry<String,String> messages
}
JAXB was working fine for converting the class to json payload with apache cxf
3.1.1.
But with 3.1.2 it throws the following error:
Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of
IllegalAnnotationExceptions
java.util.Map$Entry is an interface, and JAXB can't handle interfaces.
this problem is related to the following location:
at java.util.Map$Entry
at private java.util.List
com.ResponsePayload
at
com.sun.xml.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:106)
at
com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:460)
at
com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:292)
at
com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:139)
at
com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1138)
at
com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:162)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:247)
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:234)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:441)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:641)
at
org.apache.cxf.jaxrs.provider.AbstractJAXBProvider.getClassContext(AbstractJAXBProvider.java:515)
at
org.apache.cxf.jaxrs.provider.AbstractJAXBProvider.getJAXBContext(AbstractJAXBProvider.java:497)
at
org.apache.cxf.jaxrs.provider.AbstractJAXBProvider.createMarshaller(AbstractJAXBProvider.java:618)
at
org.apache.cxf.jaxrs.provider.json.JSONProvider.marshal(JSONProvider.java:622)
at
org.apache.cxf.jaxrs.provider.json.JSONProvider.writeTo(JSONProvider.java:393)
... 40 more
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)