Hi

I have created a small Web Service in Code-First
The content of the SEI is :

@WebService(targetNamespace = "http://www.test.partenaires.com/business";)
public interface BusinessService {

    @WebResult(name = "retour", targetNamespace = "
http://www.test.partenaires.com/business";)
    public int reserver(
            @WebParam(name = "id", targetNamespace = "
http://www.test.partenaires.com/business";, header=true, mode=Mode.IN) String
id,
            @WebParam(name = "depart", targetNamespace = "
http://www.test.partenaires.com/business";) String depart,
            @WebParam(name = "arrivee", targetNamespace = "
http://www.test.partenaires.com/business";) String arrivee,
            @WebParam(name = "date", targetNamespace = "
http://www.test.partenaires.com/business";) Date date)
            throws VoyageNonDisponibleException;
}

If I call this service from SOAPUI per example, there is no problem.

If I try call to call this service from a client code :

URL wsdlURL = new URL(
                    "http://localhost:8080/services/business?wsdl";);
            QName serviceName = new QName(
                    "http://www.test.partenaires.com/business";,
                    "BusinessServiceImplService");

            Service service = Service.create(wsdlURL, serviceName);
            BusinessService client = service.getPort(BusinessService.class);

            System.out.println(client.reserver("REF_001", "Paris", "Rennes",
                    new Date()));

I've got this error :

java.lang.NullPointerException
    at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeClassInfo(ReflectionServiceFactoryBean.java:754)
    at
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeWSDLOperation(JaxWsServiceFactoryBean.java:222)
    at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeWSDLOperations(ReflectionServiceFactoryBean.java:674)
    at
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.initializeWSDLOperations(JaxWsServiceFactoryBean.java:258)
    at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:424)
    at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:528)
    at
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:278)
    at
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:178)
    at org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:411)
    at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:296)
    at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:291)
    at javax.xml.ws.Service.getPort(Service.java:161)
    at com.test.ws.ConsumerVoyage.main(ConsumerVoyage.java:20)

Apparently the problem is coming from the header annotation : if I remove
it, no NPE is throwed

Any idea ?

Greg

Reply via email to