As a small follow-up, I'm posting a snippet of code that is capable of
using the web-service described in that wsdl.
It does so by using Axis2 RPC client..I wonder why this is working,
and why the cxf-generated classes are not.

import javax.xml.namespace.QName;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
public class HelloWorldClient {
        public static void main(String[] args) throws AxisFault, Exception {
                String url = 
"http://localhost:8080/proactive/services/HelloWorldServer_Service";;
                RPCServiceClient serviceClient = new RPCServiceClient();
                Options options = serviceClient.getOptions();
                EndpointReference targetEPR = new EndpointReference(url);
                options.setTo(targetEPR);
                QName op = new QName("helloWorld");
                String textArg = "ProActive";
                Object[] opArgs = new Object[] { textArg };
                Class<?>[] returnTypes = new Class[] { String.class };
                Object[] response = serviceClient.invokeBlocking(op, opArgs,
                                returnTypes);
                String msg = (String) response[0];
                System.err.println("Server returned: " + msg);
        }
}

On Sat, Apr 25, 2009 at 7:14 PM, Valerio Schiavoni
<[email protected]> wrote:
> Hello,
> consider the above wsdl descriptor [1].
> To invoke the hellowold operation using the cxf 2.2 generated classes ( see
> [2], I'm doing something like:
>
> HelloWorldServerService factory = new HelloWorldServerService();
>
> HelloWorldServerServicePortType s = factory
>
> .getHelloWorldServerServiceHttpSoap11Endpoint();
>
> System.err.println("from service:" + s.helloWorld("ciao"));
>
> For as simple as it seems: do you see something strange in there ?
> I'm asking because the web-service, even if it receives the call, fails with
> some strange error [3], and I would like
> to be sure that on my side I'm doing the correct operations.
> Thanks
> Valerio
> [1] WSDL:
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> xmlns:ns1="http://org.apache.axis2/xsd";
> xmlns:ns="http://helloworld.examples.fpbinding.galaxy.inria.fr";
> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl";
> xmlns:http="http://schemas.xmlsoap.org/wsdl/http/";
> xmlns:xs="http://www.w3.org/2001/XMLSchema";
> xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/";
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
> xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/";
> targetNamespace="http://helloworld.examples.fpbinding.galaxy.inria.fr";>
>
>     <wsdl:types>
>
>         <xs:schema attributeFormDefault="qualified"
> elementFormDefault="unqualified"
> targetNamespace="http://helloworld.examples.fpbinding.galaxy.inria.fr";>
>
>             <xs:element name="helloWorld">
>
>                 <xs:complexType>
>
>                     <xs:sequence>
>
>                         <xs:element minOccurs="0" name="param0"
> nillable="true" type="xs:string"/>
>
>                     </xs:sequence>
>
>                 </xs:complexType>
>
>             </xs:element>
>
>             <xs:element name="helloWorldResponse">
>
>                 <xs:complexType>
>
>                     <xs:sequence>
>
>                         <xs:element minOccurs="0" name="return"
> nillable="true" type="xs:string"/>
>
>                     </xs:sequence>
>
>                 </xs:complexType>
>
>             </xs:element>
>
>         </xs:schema>
>
>     </wsdl:types>
>
>     <wsdl:message name="helloWorldRequest">
>
>         <wsdl:part name="parameters" element="ns:helloWorld"/>
>
>     </wsdl:message>
>
>     <wsdl:message name="helloWorldResponse">
>
>         <wsdl:part name="parameters" element="ns:helloWorldResponse"/>
>
>     </wsdl:message>
>
>     <wsdl:portType name="HelloWorldServer_ServicePortType">
>
>         <wsdl:operation name="helloWorld">
>
>             <wsdl:input message="ns:helloWorldRequest"
> wsaw:Action="urn:helloWorld"/>
>
>             <wsdl:output message="ns:helloWorldResponse"
> wsaw:Action="urn:helloWorldResponse"/>
>
>         </wsdl:operation>
>
>     </wsdl:portType>
>
>     <wsdl:binding name="HelloWorldServer_ServiceSoap11Binding"
> type="ns:HelloWorldServer_ServicePortType">
>
>         <soap:binding transport="http://schemas.xmlsoap.org/soap/http";
> style="document"/>
>
>         <wsdl:operation name="helloWorld">
>
>             <soap:operation soapAction="urn:helloWorld" style="document"/>
>
>             <wsdl:input>
>
>                 <soap:body use="literal"/>
>
>             </wsdl:input>
>
>             <wsdl:output>
>
>                 <soap:body use="literal"/>
>
>             </wsdl:output>
>
>         </wsdl:operation>
>
>     </wsdl:binding>
>
>     <wsdl:binding name="HelloWorldServer_ServiceSoap12Binding"
> type="ns:HelloWorldServer_ServicePortType">
>
>         <soap12:binding transport="http://schemas.xmlsoap.org/soap/http";
> style="document"/>
>
>         <wsdl:operation name="helloWorld">
>
>             <soap12:operation soapAction="urn:helloWorld" style="document"/>
>
>             <wsdl:input>
>
>                 <soap12:body use="literal"/>
>
>             </wsdl:input>
>
>             <wsdl:output>
>
>                 <soap12:body use="literal"/>
>
>             </wsdl:output>
>
>         </wsdl:operation>
>
>     </wsdl:binding>
>
>     <wsdl:binding name="HelloWorldServer_ServiceHttpBinding"
> type="ns:HelloWorldServer_ServicePortType">
>
>         <http:binding verb="POST"/>
>
>         <wsdl:operation name="helloWorld">
>
>             <http:operation location="HelloWorldServer_Service/helloWorld"/>
>
>             <wsdl:input>
>
>                 <mime:content type="text/xml" part="helloWorld"/>
>
>             </wsdl:input>
>
>             <wsdl:output>
>
>                 <mime:content type="text/xml" part="helloWorld"/>
>
>             </wsdl:output>
>
>         </wsdl:operation>
>
>     </wsdl:binding>
>
>     <wsdl:service name="HelloWorldServer_Service">
>
>         <wsdl:port name="HelloWorldServer_ServiceHttpSoap11Endpoint"
> binding="ns:HelloWorldServer_ServiceSoap11Binding">
>
>             <soap:address
> location="http://localhost:8080/proactive/services/HelloWorldServer_Service.HelloWorldServer_ServiceHttpSoap11Endpoint/"/>
>
>         </wsdl:port>
>
>         <wsdl:port name="HelloWorldServer_ServiceHttpSoap12Endpoint"
> binding="ns:HelloWorldServer_ServiceSoap12Binding">
>
>             <soap12:address
> location="http://localhost:8080/proactive/services/HelloWorldServer_Service.HelloWorldServer_ServiceHttpSoap12Endpoint/"/>
>
>         </wsdl:port>
>
>         <wsdl:port name="HelloWorldServer_ServiceHttpEndpoint"
> binding="ns:HelloWorldServer_ServiceHttpBinding">
>
>             <http:address
> location="http://localhost:8080/proactive/services/HelloWorldServer_Service.HelloWorldServer_ServiceHttpEndpoint/"/>
>
>         </wsdl:port>
>
>     </wsdl:service>
>
> </wsdl:definitions>
>
> [2]
>
>                         <plugin>
>
> <groupId>org.apache.cxf</groupId>
>
> <artifactId>cxf-codegen-plugin</artifactId>
>
> <version>2.2</version>
>
> <executions>
>
> <execution>
>
> <id>generate-sources</id>
>
> <phase>generate-sources</phase>
>
> <configuration>
>
> <sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot>
>
> <wsdlOptions>
>
> <wsdlOption>
>
> <wsdl>${basedir}/src/main/resources/wsdl/proactive.wsdl</wsdl>
>
> </wsdlOption>
>
> </wsdlOptions>
>
> </configuration>
>
> <goals>
>
> <goal>wsdl2java</goal>
>
> </goals>
>
> </execution>
>
> </executions>
>
> </plugin>
>
> [3] The server-side error:
> org.objectweb.fractal.api.NoSuchInterfaceException:
> ServiceHttpSoap11Endpoint
> at
> org.objectweb.proactive.core.component.representative.ProActiveComponentRepresentativeImpl.getFcInterface(ProActiveComponentRepresentativeImpl.java:415)
> at
> org.objectweb.proactive.extensions.webservices.receiver.PAInOutMessageReceiver.invokeBusinessLogic(PAInOutMessageReceiver.java:99)
> at
> org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
> at
> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100)
> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
> at
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
> at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
> at
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
> at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> at java.lang.Thread.run(Thread.java:637)
> [email protected] - [ERROR     http.AxisServlet]
> java.lang.NullPointerException
> at
> org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:79)
> at
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.sendUsingOutputStream(CommonsHTTPTransportSender.java:337)
> at
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:214)
> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:448)
> at
> org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:43)
> at
> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100)
> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
> at
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
> at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
> at
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
> at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> at java.lang.Thread.run(Thread.java:637)
>
>
> --
> http://www.linkedin.com/in/vschiavoni
> http://jroller.com/vschiavoni
>



-- 
http://www.linkedin.com/in/vschiavoni
http://jroller.com/vschiavoni

Reply via email to