You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Willem2 <ni...@iona.com> on 2007/09/01 03:58:37 UTC
Re: Null Pointer in WSDLServiceFactory
Hi,
I did not find any jaxws:** or the server factory bean in your spring
configuration file.
Did you wrap the server factory bean in your
com.mysite.services.types.ObjectFactory ?
If so , can you show me the code of the ObjectFactory ?
I think you did not load the bus correctly.
Willem.
green804 wrote:
>
> I am not currently implementing a bus. Do I need to do this? I am using
> Spring 2.0 and this is running on tomcat. I've included the Spring
> context file for this client. I'm calling a service that's in .NET.
>
> How would I configure this?
>
> <beans xmlns="http://www.springframework.org/schema/beans"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:jaxws="http://cxf.apache.org/jaxws"
> xsi:schemaLocation="
> http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
> http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
>
> <import resource="classpath:META-INF/cxf/cxf.xml" />
> <import resource="classpath:META-INF/cxf/cxf-extension-http-binding.xml"
> />
> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>
> <bean id="newsServiceClient"
> class="com.mysite.services.news.NewsService">
> </bean>
>
> <bean id="mysiteObjectFactory"
> class="com.mysite.services.types.ObjectFactory"></bean>
>
> </beans>
>
>
>
>
>
> Willem2 wrote:
>>
>> Hi ,
>>
>> It looks like the WSDLServiceFactory can 't get the WSDLManager from
>> the bus when you try to create a service model for the client.
>>
>> public WSDLServiceFactory(Bus b, String url, QName sn) {
>> setBus(b);
>> try {
>> // use wsdl manager to parse wsdl or get cached definition
>> definition =
>> getBus().getExtension(WSDLManager.class).getDefinition(url); // The NPE
>> is thrown form here
>> } catch (WSDLException ex) {
>> throw new ServiceConstructionException(new
>> Message("SERVICE_CREATION_MSG", LOG), ex);
>> }
>>
>> serviceName = sn;
>> }
>>
>> It could be your WSDLManager does not be set to the bus.
>> Can you tell me how did you initialize the bus?
>> Did you use the spring configuration or load the bus by other means?
>>
>> Maybe you can set the log level to INFO for more information.
>>
>>
>> Willem.
>>
>>
>> green804 wrote:
>>> I have this code working in my development environment, but when I
>>> employ to
>>> our test environment I'm getting a null pointer. I'm not sure why this
>>> is
>>> happening. Can someone give me any pointers? I'm really desperate to
>>> find
>>> a solution.
>>>
>>> java.lang.NullPointerException
>>> at
>>> org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:81)
>>> at
>>> org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:112)
>>> at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:104)
>>> at
>>> org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:55)
>>> at javax.xml.ws.Service.<init>(Service.java:57)
>>> at
>>> com.mysite.services.news.NewsService.<init>(NewsService.java:41)
>>> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>> Method)
>>> at
>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>>>
>>> >From code:
>>>
>>> @WebServiceClient(name = "NewsService", targetNamespace =
>>> "http://services.mysite.com/News", wsdlLocation =
>>> "http://mysite.com/services/NewsService.svc?wsdl")
>>> public class NewsService extends Service {
>>>
>>> private final static URL WSDL_LOCATION;
>>> private final static QName SERVICE = new
>>> QName("http://services.mysite.com/News", "NewsService");
>>> private final static QName BasicHttpBinding = new
>>> QName("http://services.mysite.com/News", "basicHttpBinding");
>>> static {
>>> URL url = null;
>>> try {
>>> url = new
>>> URL("http://mysite.com/services/NewsService.svc?wsdl");
>>> } catch (MalformedURLException e) {
>>> System.err.println("Can not initialize the default wsdl from
>>> http://mysite.com/services/NewsService.svc?wsdl");
>>> // e.printStackTrace();
>>> }
>>> WSDL_LOCATION = url;
>>> }
>>>
>>> public NewsService(URL wsdlLocation, QName serviceName) {
>>> super(wsdlLocation, serviceName);
>>> }
>>>
>>> public NewsService() {
>>> super(WSDL_LOCATION, SERVICE);
>>> }
>>>
>>> /**
>>> *
>>> * @return
>>> * returns BasicHttpBinding
>>> */
>>> @WebEndpoint(name = "basicHttpBinding")
>>> public NewsServiceContract getBasicHttpBinding() {
>>> return (NewsServiceContract)super.getPort(BasicHttpBinding,
>>> NewsServiceContract.class);
>>> }
>>>
>>>
>>>
>>
>>
>
>
--
View this message in context: http://www.nabble.com/Null-Pointer-in-WSDLServiceFactory-tf4357565.html#a12436647
Sent from the cxf-user mailing list archive at Nabble.com.
Re: Null Pointer in WSDLServiceFactory
Posted by green804 <gi...@fox.com>.
You were right. I changed code to use the
org.apache.cxf.jaxws.JaxWsProxyFactoryBean so I could load the bus. This
seemed to fix my problems. Thanks for pointing me in the right direction.
Willem2 wrote:
>
> Hi,
>
> I did not find any jaxws:** or the server factory bean in your spring
> configuration file.
> Did you wrap the server factory bean in your
> com.mysite.services.types.ObjectFactory ?
> If so , can you show me the code of the ObjectFactory ?
>
> I think you did not load the bus correctly.
>
> Willem.
>
> green804 wrote:
>>
>> I am not currently implementing a bus. Do I need to do this? I am using
>> Spring 2.0 and this is running on tomcat. I've included the Spring
>> context file for this client. I'm calling a service that's in .NET.
>>
>> How would I configure this?
>>
>> <beans xmlns="http://www.springframework.org/schema/beans"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xmlns:jaxws="http://cxf.apache.org/jaxws"
>> xsi:schemaLocation="
>> http://www.springframework.org/schema/beans
>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>> http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
>>
>> <import resource="classpath:META-INF/cxf/cxf.xml" />
>> <import resource="classpath:META-INF/cxf/cxf-extension-http-binding.xml"
>> />
>> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
>> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>>
>> <bean id="newsServiceClient"
>> class="com.mysite.services.news.NewsService">
>> </bean>
>>
>> <bean id="mysiteObjectFactory"
>> class="com.mysite.services.types.ObjectFactory"></bean>
>>
>> </beans>
>>
>>
>>
>>
>>
>> Willem2 wrote:
>>>
>>> Hi ,
>>>
>>> It looks like the WSDLServiceFactory can 't get the WSDLManager from
>>> the bus when you try to create a service model for the client.
>>>
>>> public WSDLServiceFactory(Bus b, String url, QName sn) {
>>> setBus(b);
>>> try {
>>> // use wsdl manager to parse wsdl or get cached definition
>>> definition =
>>> getBus().getExtension(WSDLManager.class).getDefinition(url); // The NPE
>>> is thrown form here
>>> } catch (WSDLException ex) {
>>> throw new ServiceConstructionException(new
>>> Message("SERVICE_CREATION_MSG", LOG), ex);
>>> }
>>>
>>> serviceName = sn;
>>> }
>>>
>>> It could be your WSDLManager does not be set to the bus.
>>> Can you tell me how did you initialize the bus?
>>> Did you use the spring configuration or load the bus by other means?
>>>
>>> Maybe you can set the log level to INFO for more information.
>>>
>>>
>>> Willem.
>>>
>>>
>>> green804 wrote:
>>>> I have this code working in my development environment, but when I
>>>> employ to
>>>> our test environment I'm getting a null pointer. I'm not sure why this
>>>> is
>>>> happening. Can someone give me any pointers? I'm really desperate to
>>>> find
>>>> a solution.
>>>>
>>>> java.lang.NullPointerException
>>>> at
>>>> org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:81)
>>>> at
>>>> org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:112)
>>>> at
>>>> org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:104)
>>>> at
>>>> org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:55)
>>>> at javax.xml.ws.Service.<init>(Service.java:57)
>>>> at
>>>> com.mysite.services.news.NewsService.<init>(NewsService.java:41)
>>>> at
>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>> Method)
>>>> at
>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>>>>
>>>> >From code:
>>>>
>>>> @WebServiceClient(name = "NewsService", targetNamespace =
>>>> "http://services.mysite.com/News", wsdlLocation =
>>>> "http://mysite.com/services/NewsService.svc?wsdl")
>>>> public class NewsService extends Service {
>>>>
>>>> private final static URL WSDL_LOCATION;
>>>> private final static QName SERVICE = new
>>>> QName("http://services.mysite.com/News", "NewsService");
>>>> private final static QName BasicHttpBinding = new
>>>> QName("http://services.mysite.com/News", "basicHttpBinding");
>>>> static {
>>>> URL url = null;
>>>> try {
>>>> url = new
>>>> URL("http://mysite.com/services/NewsService.svc?wsdl");
>>>> } catch (MalformedURLException e) {
>>>> System.err.println("Can not initialize the default wsdl
>>>> from
>>>> http://mysite.com/services/NewsService.svc?wsdl");
>>>> // e.printStackTrace();
>>>> }
>>>> WSDL_LOCATION = url;
>>>> }
>>>>
>>>> public NewsService(URL wsdlLocation, QName serviceName) {
>>>> super(wsdlLocation, serviceName);
>>>> }
>>>>
>>>> public NewsService() {
>>>> super(WSDL_LOCATION, SERVICE);
>>>> }
>>>>
>>>> /**
>>>> *
>>>> * @return
>>>> * returns BasicHttpBinding
>>>> */
>>>> @WebEndpoint(name = "basicHttpBinding")
>>>> public NewsServiceContract getBasicHttpBinding() {
>>>> return (NewsServiceContract)super.getPort(BasicHttpBinding,
>>>> NewsServiceContract.class);
>>>> }
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
--
View this message in context: http://www.nabble.com/Null-Pointer-in-WSDLServiceFactory-tf4357565.html#a12483236
Sent from the cxf-user mailing list archive at Nabble.com.