Hi -

I'm trying to learn how to build a dynamic client using
CXF-2.2.2, and I'm having a problem right at the beginning with
the reading of the WSDL where it complains that it can't do the
code generation for the WSDL.

To begin with, here's the WSDL (autogenerated by axis on the server) for
a toy service (which does indeed work):
------------------------------------------------------------------------
<wsdl:definitions targetNamespace="http://localhost:8080/axis/HelloService.jws";>

  <!--
    WSDL created by Apache Axis version: 1.4
    Built on Apr 22, 2006 (06:55:48 PDT)
  -->

  <wsdl:message name="doServiceResponse">
    <wsdl:part name="doServiceReturn" type="xsd:string"/>
  </wsdl:message>
  <wsdl:message name="doServiceRequest"></wsdl:message>

  <wsdl:portType name="HelloService"> 
    <wsdl:operation name="doService">
      <wsdl:input message="impl:doServiceRequest" name="doServiceRequest"/>
      <wsdl:output message="impl:doServiceResponse" name="doServiceResponse"/>
    </wsdl:operation>
  </wsdl:portType>

  <wsdl:binding name="HelloServiceSoapBinding" type="impl:HelloService">
    <wsdlsoap:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="doService">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="doServiceRequest">
        <wsdlsoap:body 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
namespace="http://DefaultNamespace"; use="encoded"/>
      </wsdl:input>
      <wsdl:output name="doServiceResponse">
        <wsdlsoap:body 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
namespace="http://localhost:8080/axis/HelloService.jws"; use="encoded"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>

  <wsdl:service name="HelloServiceService">
    <wsdl:port binding="impl:HelloServiceSoapBinding" name="HelloService">
      <wsdlsoap:address location="http://localhost:8080/axis/HelloService.jws"/>
    </wsdl:port>
  </wsdl:service>

</wsdl:definitions>
------------------------------------------------------------------------

The client I'm running (HelloClient.java -- stripped down to the
minimum to show the problem I'm having) is as follows:

------------------------------------------------------------------------
package foo;

import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
import org.apache.cxf.endpoint.Client;

public final class HelloClient {

    public static void main(String[] args) {
        String wsdl = args[0];
        System.out.println("The WSDL is at:  " + wsdl + "    # sanity check"); 

        JaxWsDynamicClientFactory factory = 
JaxWsDynamicClientFactory.newInstance();
        Client client = factory.createClient(wsdl);
    }
}
------------------------------------------------------------------------

which, when compiled and run give:

------------------------------------------------------------------------
$ ls
foo

$ ls foo/
HelloClient.java

$ java -version
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Server VM (build 10.0-b23, mixed mode)

$ javac -version
javac 1.6.0_07

$ javac -cp /home/dakatz/archive/jlibs/apache-cxf-2.2.2/lib/cxf-2.2.2.jar  
foo/HelloClient.java

$ # Following CXF directions, use the JAXB jars in the CXF distribution 
$ # rather than the ones in the JRE.
$ #
$ java -cp 
.:/home/dakatz/archive/jlibs/apache-cxf-2.2.2/lib/cxf-2.2.2.jar:/home/dakatz/archive/jlibs/apache-cxf-2.2.2/lib/wsdl4j-1.6.2.jar:/home/dakatz/archive/jlibs/apache-cxf-2.2.2/lib/XmlSchema-1.4.5.jar:/home/dakatz/archive/jlibs/apache-cxf-2.2.2/lib/jaxb-xjc-2.1.9.jar:/home/dakatz/archive/jlibs/apache-cxf-2.2.2/lib/jaxb-impl-2.1.9.jar
 foo.HelloClient http://localhost:8080/axis/HelloService.jws?wsdl
The WSDL is at:  http://localhost:8080/axis/HelloService.jws?wsdl    # sanity 
check
Jul 12, 2009 12:31:22 PM org.apache.cxf.endpoint.dynamic.DynamicClientFactory 
outputDebug
INFO: Created classes: 
 javac: no source files
 Usage: javac <options> <source files>
 use -help for a list of possible options
Jul 12, 2009 12:31:22 PM org.apache.cxf.endpoint.dynamic.DynamicClientFactory 
createClient
SEVERE: Could not compile java files for 
http://localhost:8080/axis/HelloService.jws?wsdl.
$
------------------------------------------------------------------------

Any suggestions on where to start?  I saw something in this list from
2007 (I think) which discussed a similar symptom and laid it at the feet
of an old javac implementation, but my javac version is clearly decently
recent...

Thanks!

Dan

Reply via email to