[ https://issues.apache.org/jira/browse/CXF-4359?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sergey Beryozkin reassigned CXF-4359: ------------------------------------- Assignee: Sergey Beryozkin > ParameterizedType#getActualTypeArguments() classes not added to the > JAXBContext for JAX-RS providers > ---------------------------------------------------------------------------------------------------- > > Key: CXF-4359 > URL: https://issues.apache.org/jira/browse/CXF-4359 > Project: CXF > Issue Type: New Feature > Components: JAX-RS > Affects Versions: 2.6.1 > Reporter: Angelo > Assignee: Sergey Beryozkin > Attachments: cxf-patch.txt, src.zip > > > Take a parameterized class like PageResult<T> : > -------------------------------------------------------- > @XmlRootElement > @XmlAccessorType(XmlAccessType.FIELD) > public class ResultPage<T> { > private List<T> content; > public List<T> getContent() { > return content; > } > > public void setContent(List<T> content) { > this.content = content; > } > } > -------------------------------------------------------- > And take a service which uses this parameterized class : > -------------------------------------------------------- > public interface UserService { > @GET > public PageResult<User> findUsers(); > @GET > public PageResult<Role> findRoles(); > } > -------------------------------------------------------- > When provider create JAXBContext (eg: JSONProvider) for this interface, only > PageResult class is added to the JAXBContext and we need declare the 2 > classes > ------------------------------------------------------------- > <bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.JSONProvider"> > <property name="singleJaxbContext" value="true" /> > <property name="extraClass"> > <list> > <value>User</value> > <value>Role</value> > </list> > </property> > </bean> > ------------------------------------------------------------- > This mean can be boring, because as soon as you add new domain class, you > must modify too this declaration. > In my case I cannot use XmlSeeAlso because PageResult belongs to another Java > Project (Spring Data) and it can be used with any domain classes. > To fix this problem, the JAX-RS CXF provider should populate the JAXBContext > with PageResult, A and B instead of just with PageResult. > The attached patch manage this case. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira