JAXB tends to not work very well with Collections/Lists IMO - at least not right on the parameter class. You may want to try using the Aegis databinding which works quite well with them. I'll see if I can churn out a test case though for this and see what might be wrong.
- Dan On 7/15/07, Brad O'Hearne <[EMAIL PROTECTED]> wrote:
The plot thickens. I changed the code back, so that Collection was no longer there, and the orginal ArrayList is there. The code is *still* crashing however. My input has not changed -- it is hard-coded, so I know for a fact it has not changed. I am now suspecting some new resource that may have been posted to an online maven repository, because that's the only thing I can think of that could have injected new code into my code-base, as I am building with maven. Is anyone aware of any new CXF artifact or dependency that has hit public maven repositories within the last day? Thanks, Brad Brad O'Hearne wrote: > I have a RESTful service configured with Spring. Here is the interface: > > @WebService > public interface IUserService { > @Post > @HttpResource(location="/authenticate") > AuthenticateResponse authenticate(AuthenticateRequest request) > throws KilterException; > > @Post > @HttpResource(location="/getEntities") > ArrayList<User> getUsers(GetUsersRequest request) throws > KilterException; > > } > > > This service works without error. However, I made one change, which > was changing the return type of the getUsers method from the ArrayList > listed to a Collection, as follows: > > @Post > @HttpResource(location="/getEntities") > Collection<User> getUsers(GetUsersRequest request) throws > KilterException; > > > This was the ONLY change made. Though my server loaded the service > without error, oddly, invoking the authenticate method, in the same > way as before, with the same exact data, resulted in the following > exception (NOTE: the code of my actual service was never invoked, this > exception occurred in the CXF API which was processing parameters). So > apparently, this Collection type, though on the getUsers method, > prevented the authenticate method from being invoked. ??? Does anyone > have any idea why this would be, and how to rectify it? The exception > is below: > > INFO: Invoking POST on /authenticate > Jul 15, 2007 8:59:17 PM > org.apache.cxf.binding.http.interceptor.URIParameterInInterceptor > handleMessage > INFO: URIParameterInterceptor handle message on path [/authenticate] > with content-type [application/xml] > Jul 15, 2007 8:59:17 PM org.apache.cxf.phase.PhaseInterceptorChain > doIntercept > INFO: Interceptor has thrown exception, unwinding now > java.lang.NullPointerException > at > org.apache.cxf.binding.http.IriDecoderHelper.interopolateParams( IriDecoderHelper.java:264) > > at > org.apache.cxf.binding.http.interceptor.URIParameterInInterceptor.mergeParams (URIParameterInInterceptor.java:124) > > at > org.apache.cxf.binding.http.interceptor.URIParameterInInterceptor.handleMessage (URIParameterInInterceptor.java:105) > > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept( PhaseInterceptorChain.java:206) > > at > org.apache.cxf.transport.ChainInitiationObserver.onMessage( ChainInitiationObserver.java:67) > > at > org.apache.cxf.transport.servlet.ServletDestination.doMessage( ServletDestination.java:100) > > at > org.apache.cxf.transport.servlet.ServletController.invokeDestination( ServletController.java:224) > > at > org.apache.cxf.transport.servlet.ServletController.invoke( ServletController.java:103) > > at > org.apache.cxf.transport.servlet.CXFServlet.invoke(CXFServlet.java:261) > at > org.apache.cxf.transport.servlet.CXFServlet.doPost(CXFServlet.java:239) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:270) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:191) > > at > org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:227) > > at > org.apache.catalina.core.StandardContextValve.invoke( StandardContextValve.java:174) > > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :127) > > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java :104) > > at > org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:108) > > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java :211) > > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java :817) > > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process( Http11Protocol.java:623) > > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:444) > at java.lang.Thread.run(Thread.java:595) > > Thanks, > > Brad
-- Dan Diephouse Envoi Solutions http://envoisolutions.com | http://netzooid.com/blog