I just wanted to thank you. Your message solved my problem (which was essentially the same). Thanks man!
Best regards Martin On Fri, May 13, 2011 at 12:07 AM, Kevin McClusky <kevinmcclu...@yahoo.com> wrote: > Just to close the loop on this (and in case anyone finds it on google), the > problem was that CXF 2.4.0 handles the contextClassLoader differently than > 2.3.2.I had to set the thread's contextClassLoader before creating the > client. I just added beforehand: > > Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); > > Best, > Kevin > > > > > ________________________________ > From: Freeman Fang <freeman.f...@gmail.com> > To: users@cxf.apache.org > Sent: Tuesday, May 10, 2011 7:53 PM > Subject: Re: Upgrade to 2.4, NullPointerException > > Hi, > > I see exactly same error when I do upgrade to cxf 2.4.0 in servicemix, for me > the error is caused by Bus refactor in 2.4.0, if you have explicitly init a > bus like > <bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl">, > > you should remove it and use <cxf:bus> instead. > > Freeman > > On 2011-5-11, at 上午10:19, Kevin McClusky wrote: > >> Hi, >> I upgraded from 2.3.2 to 2.4, and I'm getting a NullPointerException when >>I try to create a dynamic client. >> >> Code: >> >> DynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); >> Client client = dcf.createClient(wsdlUrl, service, >> DynamicClientFactory.class.getClassLoader(), port); >> >> stacktrace: >> >> java.lang.NullPointerException >> at >>org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:67) >> at >>org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:84) >> at org.apache.cxf.endpoint.ClientImpl.<init>(ClientImpl.java:152) >> at >>org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:255) >> at >>org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:198) >> at >>org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:191) >> >> >> Line 67 in WSDLServiceFactory is: >> definition = >>getBus().getExtension(WSDLManager.class).getDefinition(wsdlUrl); >> >> I tested, and getBus().getExtension(WSDLManager.class) is returning null. >> >> >> What's the proper way to make sure the bus has the extension manager / is >> properly initialized? With 2.3.2, I didn't need to worry about it, but it >> looks like I do with 2.4.0. >> >> >> >> A little more information: I'm including my code in an application that has >> a somewhat complex class loader hierarchy. It worked as-is with 2.3.2. The >> class loader used to load the CXF jars should be this class's classloader's >> parent. >> >> Also, if I just write a POJO with a main method, and thow this in, it *does >> not* give me the NPE; the NPE only comes from inside the full application: >> >> DynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); >> Bus bus = CXFBusFactory.getThreadDefaultBus(); >> WSDLManager extension = bus.getExtension(WSDLManager.class); >> >> Thank you, >> Kevin > > --------------------------------------------- > Freeman Fang > > FuseSource > Email:ff...@fusesource.com > Web: fusesource.com > Twitter: freemanfang > Blog: http://freemanfang.blogspot.com > Connect at CamelOne May 24-26 > The Open Source Integration Conference