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

Alan Hazelton commented on CXF-2604:
------------------------------------

Using an AegisElementProvider via Spring:

  <bean id="aegisProvider" 
class="com.axeda.sl.webservices.v1.cxf.provider.CustomAegisElementProvider"/>
  <jaxrs:server address="/v1/rest">
        <jaxrs:serviceBeans>
          <ref bean="helloworldWServiceBean"/>
        </jaxrs:serviceBeans>
        <jaxrs:providers>
           <ref bean="customRequestHandlerProvider"/>
           <ref bean="customFormProvider"/>
           <ref bean="aegisProvider"/>
        </jaxrs:providers>
        <jaxrs:languageMappings/>
</jaxrs:server>

I'll attach the provider but it is pretty much an empty class that extends 
AegisElementProvider and calls the superclass methods in everything overridden.
I didn't add this part so I'm not sure why its there.

> Issue with multiple REST methods having List<T> arguments
> ---------------------------------------------------------
>
>                 Key: CXF-2604
>                 URL: https://issues.apache.org/jira/browse/CXF-2604
>             Project: CXF
>          Issue Type: Bug
>          Components: Aegis Databinding, JAX-RS
>    Affects Versions: 2.2.5
>         Environment: JBoss 4.3 Using CXF 2.2.5
>            Reporter: Alan Hazelton
>
> I have a REST based service method that takes a List<Foo> parameter.  The 
> method is annotated with @POST and I can verify that the XML body of the POST 
> request from the server expects the top level element to be <ArrayOfFoo> and 
> a second method that takes a List<Bar> parameter.
> It is important to note that the Foo and Bar classes are in different 
> packages and therefore the namespaces are different.
> The service would look something like this:
> My resource is defined like this:
> @Path("/")
> public class SomeResource {
>   @POST
>   @Path("/foo/update")
>   void postFoo(List<Foo> list) {}
>  
>   @POST
>   @Path("/bar/update")
>   void postBar(List<Bar> list) {}
> } 
> When I stop the server in the debugger after posting to "/foo/update" I can 
> see that in the org.apache.cxf.aegis.type.TypeUtil class the 
> getReadTypeStandalone() method is invoked to get the top level type.  In this 
> case it will be ArrayOfFoo and the type is located and my method called with 
> the correct list object un-marshalled from XML.
> In the second case, when posting to "/bar/update", ArrayOfBar is not found in 
> the AegisContext and null is returned by the getReadTypeStandalone method.
> The part that really confuses me is that if at runtime (after restarting the 
> server) I invoke the postBar method before invoking the postFoo method, the 
> ArrayOfBar type is located but not the ArrayOfFoo type.
> Some important things to note:
> 1.  This seems to only affect the ArrayOf<T> classes.   Other custom classes 
> from different namespaces are fine.
> 2.  This only happens when ArrayOfBar is in a different namespace from 
> ArrayOfFoo.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to