Hello everyone,'m using cxf 2.0.4-incubator (is this the latest one?) I expose a java class as a web-service, doing something like:
wsServerFactoryBean = new ServerFactoryBean(); wsServerFactoryBean.setAddress(address); wsServerFactoryBean.setServiceClass(serviceClass); wsServerFactoryBean.setServiceBean(delegate.getFcInterface(itfName)); wsServerFactoryBean.create(); So, if I look at the appropriate URL, I can infact see the generated WSDL: <?xml version="1.0" encoding="utf-8"?><wsdl:definitions xmlns:ns1=" http://schemas.xmlsoap.org/soap/http" xmlns:soap=" http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns=" http://bf.fractal.objectweb.org/" xmlns:wsdl=" http://schemas.xmlsoap.org/wsdl/" xmlns:xsd=" http://www.w3.org/2001/XMLSchema" name="ComplexService" targetNamespace=" http://bf.fractal.objectweb.org/"> <wsdl:types> <xs:schema xmlns="http://bf.fractal.objectweb.org/" xmlns:xs=" http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace=" http://bf.fractal.objectweb.org/"> <xs:complexType name="product"> <xs:sequence> <xs:element name="id" type="xs:int"/> <xs:element minOccurs="0" name="name" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:element name="print" type="print"/> <xs:complexType name="print"> <xs:sequence/> </xs:complexType> <xs:element name="printResponse" type="printResponse"/> <xs:complexType name="printResponse"> <xs:sequence/> </xs:complexType> <xs:element name="getProduct" type="getProduct"/> <xs:complexType name="getProduct"> <xs:sequence/> </xs:complexType> <xs:element name="getProductResponse" type="getProductResponse"/> <xs:complexType name="getProductResponse"> <xs:sequence> <xs:element minOccurs="0" name="return" type="product"/> </xs:sequence> </xs:complexType> <xs:element name="printAndAnswer" type="printAndAnswer"/> <xs:complexType name="printAndAnswer"> <xs:sequence/> </xs:complexType> <xs:element name="printAndAnswerResponse" type="printAndAnswerResponse"/> <xs:complexType name="printAndAnswerResponse"> <xs:sequence> <xs:element minOccurs="0" name="return" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:schema> </wsdl:types> <wsdl:message name="printAndAnswer"> <wsdl:part element="tns:printAndAnswer" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="getProductResponse"> <wsdl:part element="tns:getProductResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="printAndAnswerResponse"> <wsdl:part element="tns:printAndAnswerResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="getProduct"> <wsdl:part element="tns:getProduct" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="printResponse"> <wsdl:part element="tns:printResponse" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:message name="print"> <wsdl:part element="tns:print" name="parameters"> </wsdl:part> </wsdl:message> <wsdl:portType name="ComplexServicePortType"> <wsdl:operation name="print"> <wsdl:input message="tns:print" name="print"> </wsdl:input> <wsdl:output message="tns:printResponse" name="printResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="getProduct"> <wsdl:input message="tns:getProduct" name="getProduct"> </wsdl:input> <wsdl:output message="tns:getProductResponse" name="getProductResponse"> </wsdl:output> </wsdl:operation> <wsdl:operation name="printAndAnswer"> <wsdl:input message="tns:printAndAnswer" name="printAndAnswer"> </wsdl:input> <wsdl:output message="tns:printAndAnswerResponse" name="printAndAnswerResponse"> </wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="ComplexServiceSoapBinding" type="tns:ComplexServicePortType"> <soap:binding style="document" transport=" http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="print"> <soap:operation soapAction="" style="document"/> <wsdl:input name="print"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="printResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="getProduct"> <soap:operation soapAction="" style="document"/> <wsdl:input name="getProduct"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="getProductResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="printAndAnswer"> <soap:operation soapAction="" style="document"/> <wsdl:input name="printAndAnswer"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="printAndAnswerResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="ComplexService"> <wsdl:port binding="tns:ComplexServiceSoapBinding" name="ComplexServicePort"> <soap:address location="http://localhost:8080/ComplexService?wsdl"/> </wsdl:port> </wsdl:service> </wsdl:definitions> On the client-side, i create the client: dcf = DynamicClientFactory.newInstance(); this.client = dcf.createClient(this.address); result = client.invoke(methodName, new Object[]{}); i'm getting this stacktrace: NFO: Pre-instantiating singletons in [EMAIL PROTECTED]: defining beans [cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor, org.apache.cxf.bus.spring.BusExtensionPostProcessor, org.apache.cxf.resource.ResourceManager, org.apache.cxf.configuration.Configurer, org.apache.cxf.binding.BindingFactoryManager, org.apache.cxf.transport.DestinationFactoryManager, org.apache.cxf.transport.ConduitInitiatorManager, org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager, org.apache.cxf.workqueue.WorkQueueManager, org.apache.cxf.buslifecycle.BusLifeCycleManager, org.apache.cxf.endpoint.ServerRegistry, org.apache.cxf.endpoint.ServerLifeCycleManager, org.apache.cxf.endpoint.ClientLifeCycleManager, org.apache.cxf.transports.http.QueryHandlerRegistry, org.apache.cxf.endpoint.EndpointResolverRegistry, org.apache.cxf.headers.HeaderManager, org.apache.cxf.catalog.OASISCatalogManager, org.apache.cxf.endpoint.ServiceContractResolverRegistry, org.apache.cxf.jaxws.context.WebServiceContextResourceResolver, org.apache.cxf.jaxws.context.WebServiceContextImpl, org.apache.cxf.binding.soap.SoapBindingFactory, org.apache.cxf.binding.soap.SoapTransportFactory, org.apache.cxf.binding.soap.customEditorConfigurer, org.apache.cxf.binding.xml.XMLBindingFactory, org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder, org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder, org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory, org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory]; root of factory hierarchy 1-feb-2008 15.58.50 org.apache.cxf.endpoint.dynamic.DynamicClientFactoryoutputDebug INFO: Created classes: org.objectweb.fractal.bf.GetProduct, org.objectweb.fractal.bf.GetProductResponse, org.objectweb.fractal.bf.ObjectFactory, org.objectweb.fractal.bf.Print, org.objectweb.fractal.bf.PrintAndAnswer, org.objectweb.fractal.bf.PrintAndAnswerResponse, org.objectweb.fractal.bf.PrintResponse, org.objectweb.fractal.bf.Product 1-feb-2008 15.58.51 org.apache.cxf.phase.PhaseInterceptorChain doIntercept INFO: Interceptor has thrown exception, unwinding now org.apache.cxf.binding.soap.SoapFault: "http://schemas.xmlsoap.org/wsdl/", the namespace on the "definitions" element, is not a valid SOAP version. at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage (ReadHeadersInterceptor.java:94) at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage (ReadHeadersInterceptor.java:56) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept( PhaseInterceptorChain.java:208) at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:429) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse (HTTPConduit.java:1955) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close( HTTPConduit.java:1791) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575) at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage (MessageSenderInterceptor.java:62) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept( PhaseInterceptorChain.java:208) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:276) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:222) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:180) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:200) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:186) at org.objectweb.fractal.bf.connectors.ws.SoapCxfInvocationHandler.invoke( SoapCxfInvocationHandler.java:54) at $Proxy7.getProduct(Unknown Source) at org.objectweb.fractal.julia.generated.Cbc10952e_0.getProduct (INTERCEPTOR[ComplexService]) at org.objectweb.fractal.julia.generated.C29c2b633_0.getProduct (INTERFACE[ComplexService]) at org.objectweb.fractal.bf.ComplexClient.run(ComplexClient.java:22) at org.objectweb.fractal.julia.generated.Cdb531190_0.run (INTERCEPTOR[Runnable]) at org.objectweb.fractal.julia.generated.Ca8e8ed5_0.run(INTERFACE[Runnable]) at org.objectweb.fractal.adl.Launcher.compile(Launcher.java:244) at org.objectweb.fractal.adl.Launcher.compile(Launcher.java:196) at org.objectweb.fractal.adl.Launcher.main(Launcher.java:317) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java :39) at sun.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:271) at java.lang.Thread.run(Thread.java:613) Any idea ?? Thanks, and sorry for the long email. Valerio -- http://www.linkedin.com/in/vschiavoni http://jroller.com/vschiavoni
