You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Dan Diephouse <da...@envoisolutions.com> on 2006/10/30 23:13:32 UTC

NPE in JaxWsServiceFactoryBean [was Re: svn commit: r469066 ...]

I just took a Greeter implementation and tried this, but it worked 
swimmingly. It looks like:

@WebService(serviceName = "SOAPService",
            portName = "SoapPort",
            endpointInterface = "org.apache.hello_world_doc_lit.Greeter",
            targetNamespace = "http://apache.org/hello_world_doc_lit")
public class GreeterImplDoc implements Greeter { ... }

And my code was:

 JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
sf.setBus(getBus());
sf.setServiceClass(GreeterImplDoc.class);
sf.setStart(false);
       
Server server = sf.create();

Could you maybe attach a little more code from your end?

- Dan

Tam, William wrote:
> Yes, it is from test-utils.  
>
> Thanks,
> William
>
> -----Original Message-----
> From: Dan Diephouse [mailto:dan@envoisolutions.com] 
> Sent: Monday, October 30, 2006 3:55 PM
> To: cxf-dev@incubator.apache.org
> Cc: cxf-commits@incubator.apache.org
> Subject: Re: svn commit: r469066 [1/3] - in /incubator/cxf/trunk:
> api/src/main/java/org/apache/cxf/databinding/
> api/src/main/java/org/apache/cxf/service/model/
> common/common/src/main/java/org/apache/cxf/configuration/spring/
> common/common/src/test/java/org/apache/
>
> Hola,
> Is this from the doc/lit/bare Greeter in test-utils? If so I will try it
>
> out myself...
> - Dan
>
> Tam, William wrote:
>
>   
>> Dan,
>>
>> Thanks for you reply.  I am now getting a NPE in
>> JaxWsServiceFactoryBean.initializeParameter().  
>>
>> Regards,
>> William
>>
>> Caused by: java.lang.NullPointerException
>>        at
>> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeParamete
>>     
> r
>   
>> (JaxWsServiceFactoryBean.java:248)
>>        at
>> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeParamete
>>     
> r
>   
>> (JaxWsServiceFactoryBean.java:230)
>>        at
>> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initalizeClassInfo
>>     
> (
>   
>> JaxWsServiceFactoryBean.java:213)
>>        at
>> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeWSDLOper
>>     
> a
>   
>> tion(JaxWsServiceFactoryBean.java:122)
>>        at
>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeW
>>     
> S
>   
>> DLOperations(ReflectionServiceFactoryBean.java:237)
>>        at
>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeS
>>     
> e
>   
>> rviceModel(ReflectionServiceFactoryBean.java:177)
>>        at
>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(Refl
>>     
> e
>   
>> ctionServiceFactoryBean.java:115)
>>        at
>> org.mule.providers.wsdl.cxf.CxfMessageReceiver.init(CxfMessageReceiver.
>>     
> j
>   
>> ava:55)
>>        ... 29 more
>>
>> -----Original Message-----
>> From: Dan Diephouse [mailto:dan@envoisolutions.com] 
>> Sent: Monday, October 30, 2006 12:01 PM
>> To: cxf-dev@incubator.apache.org
>> Cc: cxf-commits@incubator.apache.org
>> Subject: Re: svn commit: r469066 [1/3] - in /incubator/cxf/trunk:
>> api/src/main/java/org/apache/cxf/databinding/
>> api/src/main/java/org/apache/cxf/service/model/
>> common/common/src/main/java/org/apache/cxf/configuration/spring/
>> common/common/src/test/java/org/apache/
>>
>> Hi William,
>> As I noted in the commit message, the JAXB databinding works
>>     
> differently
>   
>> now. The ServiceFactory is now responsible for traversing your service 
>> class and setting the classes on the service model. This removes the 
>> coupling the JAXB databinding had on JAX-WS and also on the notion that
>>     
>
>   
>> there is always one service class per service (there could be more...).
>>
>> Then in JAXBDataBinding.initialize(ServiceInfo) we look at the classes 
>> and add them to the context. Calling new JAXBDatabinding(class) will
>>     
> add
>   
>> that class directly to the context. I would suggest using the 
>> JaxWsServiceFactory to build up your service.
>> Cheers,
>> - Dan
>>
>> Tam, William wrote:
>>  
>>
>>     
>>> Hi Dan,
>>>
>>> Prior to this change, I was able to create a "new
>>> JAXBDataBinding(myClazz)" where myClazz is an interface.  It looks
>>>    
>>>
>>>       
>> like
>>  
>>
>>     
>>> I can no longer construct a JAXBDataBinding object with an interface.
>>> The following is the stack trace.  It is important for me to be able
>>>    
>>>
>>>       
>> to
>>  
>>
>>     
>>> pass an interface as opposed to an impl class.  Do you have any
>>> suggestions? 
>>>
>>> Regards,
>>> William
>>>
>>> Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1
>>> counts of IllegalAnnotationExceptions
>>> org.apache.hello_world_doc_lit.Greeter is an interface, and JAXB can't
>>> handle interfaces.
>>>        this problem is related to the following location:
>>>                at org.apache.hello_world_doc_lit.Greeter
>>>
>>>        at
>>>
>>>    
>>>
>>>       
>> com.sun.xml.bind.v2.runtime.IllegalAnnotationsException$Builder.check(I
>>     
> l
>   
>>  
>>
>>     
>>> legalAnnotationsException.java:66)
>>>        at
>>>
>>>    
>>>
>>>       
>> com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextI
>>     
> m
>   
>>  
>>
>>     
>>> pl.java:361)
>>>        at
>>>
>>>    
>>>
>>>       
>> com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java
>>     
> :
>   
>>  
>>
>>     
>>> 217)
>>>        at
>>>
>>>    
>>>
>>>       
>> com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:76
>>     
> )
>   
>>  
>>
>>     
>>>        at
>>>
>>>    
>>>
>>>       
>> com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:55
>>     
> )
>   
>>  
>>
>>     
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>>>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
>>> Source)
>>>        at java.lang.reflect.Method.invoke(Unknown Source)
>>>        at
>>> javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:210)
>>>        at javax.xml.bind.ContextFinder.find(ContextFinder.java:368)
>>>        at
>>>    
>>>
>>>       
>> javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
>>  
>>
>>     
>>>        at
>>>    
>>>
>>>       
>> javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522)
>>  
>>
>>     
>>>        at
>>>
>>>    
>>>
>>>       
>> org.apache.cxf.jaxb.JAXBDataBinding.createJAXBContext(JAXBDataBinding.j
>>     
> a
>   
>>  
>>
>>     
>>> va:257)
>>>        at
>>> org.apache.cxf.jaxb.JAXBDataBinding.<init>(JAXBDataBinding.java:90)
>>>        at
>>>
>>>    
>>>
>>>       
>> org.mule.providers.wsdl.cxf.CxfMessageReceiver.createCxfServiceFactory(
>>     
> C
>   
>>  
>>
>>     
>>> xfMessageReceiver.java:146)
>>>        ... 30 more
>>>
>>>  
>>>    
>>>
>>>       
>>  
>>
>>     
>
>
>   


-- 
Dan Diephouse
Envoi Solutions
http://envoisolutions.com
http://netzooid.com/blog


Re: NPE in JaxWsServiceFactoryBean [was Re: svn commit: r469066 ...]

Posted by Dan Diephouse <da...@envoisolutions.com>.
BTW, are we going to see this mule code contributed to the next version 
of Mule? That would be quite excellent!
- Dan

Dan Diephouse wrote:
> I just took a Greeter implementation and tried this, but it worked 
> swimmingly. It looks like:
>
> @WebService(serviceName = "SOAPService",
>            portName = "SoapPort",
>            endpointInterface = "org.apache.hello_world_doc_lit.Greeter",
>            targetNamespace = "http://apache.org/hello_world_doc_lit")
> public class GreeterImplDoc implements Greeter { ... }
>
> And my code was:
>
> JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
> sf.setBus(getBus());
> sf.setServiceClass(GreeterImplDoc.class);
> sf.setStart(false);
>       Server server = sf.create();
>
> Could you maybe attach a little more code from your end?
>
> - Dan
>
> Tam, William wrote:
>> Yes, it is from test-utils. 
>> Thanks,
>> William
>>
>> -----Original Message-----
>> From: Dan Diephouse [mailto:dan@envoisolutions.com] Sent: Monday, 
>> October 30, 2006 3:55 PM
>> To: cxf-dev@incubator.apache.org
>> Cc: cxf-commits@incubator.apache.org
>> Subject: Re: svn commit: r469066 [1/3] - in /incubator/cxf/trunk:
>> api/src/main/java/org/apache/cxf/databinding/
>> api/src/main/java/org/apache/cxf/service/model/
>> common/common/src/main/java/org/apache/cxf/configuration/spring/
>> common/common/src/test/java/org/apache/
>>
>> Hola,
>> Is this from the doc/lit/bare Greeter in test-utils? If so I will try it
>>
>> out myself...
>> - Dan
>>
>> Tam, William wrote:
>>
>>   
>
>


-- 
Dan Diephouse
Envoi Solutions
http://envoisolutions.com
http://netzooid.com/blog