cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James Mao <james....@iona.com>
Subject Re: cxf gen client got Nullpointer
Date Wed, 15 Nov 2006 03:59:11 GMT
Hi,

The wsdl generated from the SEI is correct.
It seems that the RT is looking for {http://cxf.com}out instead of 
{http://cxf.com}return, that cause the problem.

The solution i can give is a workaround solution, you can add the 
WebResult annotation for the method.

I'll looking into the RT later.

Thanks,
James.

> Hi guys,
>
> This probably a real issue.
>
> I started with a simple interface, as below:
>
> package com.cxf;
> import javax.jws.WebService;
> import javax.jws.WebMethod;
> import javax.jws.soap.SOAPBinding;
>
> @WebService(name="Hello", targetNamespace="http://cxf.com/")
> public interface Hello {
>
>    
> @SOAPBinding(parameterStyle=javax.jws.soap.SOAPBinding.ParameterStyle.BARE, 
> style=javax.jws.soap.SOAPBinding.Style.RPC, 
> use=javax.jws.soap.SOAPBinding.Use.LITERAL)
>    @WebMethod(operationName="sayHi", exclude=false)
>    String sayHi();
> }
>
> Then I use java2wsdl to generate the following wsdl
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="http://cxf.com/" 
> xmlns:tns="http://cxf.com/" xmlns:ns1="http://cxf.com/" 
> xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
>  <wsdl:types>
>    <xsd:schema targetNamespace="http://cxf.com/" version="1.0" 
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
>
>  <xs:element name="sayHiResponse" nillable="true" type="xs:string"/>
> </xsd:schema>
>  </wsdl:types>
>  <wsdl:message name="sayHi">
>  </wsdl:message>
>  <wsdl:message name="sayHiResponse">
>    <wsdl:part name="return" type="xsd:string">
>    </wsdl:part>
>  </wsdl:message>
>  <wsdl:portType name="Hello">
>    <wsdl:operation name="sayHi">
>      <wsdl:input name="sayHi" message="tns:sayHi">
>    </wsdl:input>
>      <wsdl:output name="sayHiResponse" message="tns:sayHiResponse">
>    </wsdl:output>
>    </wsdl:operation>
>  </wsdl:portType>
>  <wsdl:binding name="HelloBinding" type="tns:Hello">
>    <soap:binding style="document" 
> transport="http://schemas.xmlsoap.org/soap/http"/>
>    <wsdl:operation name="sayHi">
>      <soap:operation style="rpc"/>
>      <wsdl:input name="sayHi">
>        <soap:body use="literal"/>
>      </wsdl:input>
>      <wsdl:output name="sayHiResponse">
>        <soap:body use="literal"/>
>      </wsdl:output>
>    </wsdl:operation>
>  </wsdl:binding>
>  <wsdl:service name="HelloService">
>    <wsdl:port name="HelloPort" binding="tns:HelloBinding">
>      <soap:address location="http://localhost:9000/Hello"/>
>    </wsdl:port>
>  </wsdl:service>
> </wsdl:definitions>
>
> Using that wsdl, I use wsdl2java to generate the simple Server and 
> Client. I start up the server and then the client. From the client 
> site I got a NullPointerException, stack trace:
>
> INFO: Creating Service {http://cxf.com/}HelloService from WSDL.
> Exception in thread "main" java.lang.NullPointerException
>    at 
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeParameter(JaxWsServiceFactoryBean.java:260)

>
>    at 
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeParameter(JaxWsServiceFactoryBean.java:242)

>
>    at 
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeClassInfo(JaxWsServiceFactoryBean.java:222)

>
>    at 
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeWSDLOperation(JaxWsServiceFactoryBean.java:122)

>
>    at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeWSDLOperations(ReflectionServiceFactoryBean.java:239)

>
>    at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:178)

>
>    at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:116)

>
>    at org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:239)
>    at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:199)
>    at javax.xml.ws.Service.getPort(Service.java:94)
>    at com.cxf.HelloService.getHelloPort(HelloService.java:67)
>    at com.cxf.HelloClient.main(HelloClient.java:65)
>
>
>
>


Mime
View raw message