Angelo created CXF-4359:
---------------------------
Summary: ParameterizedType#getActualTypeArguments() classes not
added to th eJAXBContext for the 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
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