[ 
https://issues.apache.org/jira/browse/CXF-4799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13581202#comment-13581202
 ] 

Sergey Beryozkin commented on CXF-4799:
---------------------------------------

I made handleJaxbException non-static; all the changes are on the trunk & 2.7.x
                
> Parameterized Classes should be automatically added to JAXBContext
> ------------------------------------------------------------------
>
>                 Key: CXF-4799
>                 URL: https://issues.apache.org/jira/browse/CXF-4799
>             Project: CXF
>          Issue Type: Improvement
>          Components: JAX-RS
>    Affects Versions: 2.7.2
>            Reporter: Sambit Dikshit
>
> We are using a payload type which is a parameterized generic. For example, 
> ServiceResponse<T>  { 
> T payload;
> public T getPayload() { 
> return T
> }
> public void setPayload(T t){
> this.payload = t;
> }
> We are using this as a payload wrapper for JAXRS services.  The payload can 
> be any type at runtime. Unless we set the extraClass, the JAXBContext created 
> in AbstractJAXBProvider is not picking up the actual parameter types. I was 
> thinking of extending to add to existing jaxb context map, i could not since 
> its a private scoped hashmap. This should be automatically handled in 
> AbstractJAXBProvider class.  Following check can be made and added for actual 
> type. 
> ParameterizedType paramType = (genericType instanceof ParameterizedType) ? 
> (ParameterizedType) genericType: null;
> if (paramType.getActualTypeArguments().length > 0) {
>   // Fetch the actual type at index 0
>    actualWrapperParamType = InjectionUtils.getType(
>    paramType.getActualTypeArguments(), 0);
>    Class<?> actualWrapperClass = 
> InjectionUtils.getActualType(actualWrapperParamType);
>                               
> This actual class type check can be done inside getJAXBContext. This will do 
> automatic deep check and setting into JAXB context only for custom payload 
> types. 
> Or else expose the jaxb context map to be accessible when extend 
> AbstractJAXBprovider or JAXBElementProvider.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to