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

Reply via email to