[ 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.