(Under development)

Synopsis

   java2ws -databinding <jaxb or aegis> -frontend <jaxws or simple> -wsdl -wrapperbean -client -server -ant
           -o <output-file> -d <resource-directory> -classdir <compile-classes-directory> -cp <class-path> 
           -soap12 -t <target-namespace> -beans <ppathname of the bean definition file>* 
           -servicename <service-name> -portname <port-name> -createxsdimports -h -v -verbose -quiet {classname}

Description

java2ws uses a Web service endpoint's implementation (SEI) class and associated types classes to generate a WSDL file, wrapper bean ,server side code used to start this web service and client side code.

Note: java2ws is implemented only for future CXF 2.1 releases (those off of our trunk code). For the present 2.0.x production series of CXF, please use java2wsdl instead.

Example

java2ws -wsdl -d ./resource org.apache.hello_world_soap_http.Greeter
java2ws -cp ./tmp org.apache.hello_world_soap_http.Greeter -wsdl
java2ws -o hello.wsdl -wsdl org.apache.hello_world_soap_http.Greeter
java2ws -client -server -s ./src org.apache.hello_world_soap_http.Greeter
java2ws -wrapperbean -classdir ./classes org.apache.hello_world_soap_http.Greeter

Arguments

The arguments used to manage the code generation process are reviewed in the following table.

Option Interpretation
-? Displays the online help for this utility.
-help
-h
-o Specifies the name of the generated WSDL file.
--databinding Specify the data binding (aegis or jaxb). Default is jaxb for jaxws frontend, and aegis for simple frontend.
-frontend Specify the frontend to use. jaxws and the simple frontend are supported.
-wsdl Specify to generate the WSDL file.
-wrapperbean Specify to generate the wrapper and fault bean
-client Specify to generate client side code
-server Specify to generate server side code
-ant Specify to generate an Ant build.xml script
-cp Specify the SEI and types class search path of directories and zip/jar files.
-soap12 Specifies that the generated WSDL is to include a SOAP 1.2 binding.
-t Specifies the target namespace to use in the generated WSDL file.
-servicename Specifies the value of the generated service element's name attribute.
-v Displays the version number for the tool.
-verbose Displays comments during the code generation process.
-quiet Suppresses comments during the code generation process.
-s The directory in which the generated source files(wrapper bean ,fault bean ,client side or server side code) are placed.
-classdir The directory in which the generated sources are compiled into. If not specified, the files are not compiled.
-portname Specify the port name to use in the generated wsdl.
-createxsdimports Output schemas to separate files and use imports to load them instead of inlining them into the wsdl.
-d The directory in which the resource files are placed, wsdl file will be placed into this directory by default
classname Specifies the name of the SEI class.

You must include the classname argument. All other arguments are optional and may be listed in any order. This tool will search and load the service endpoint class and types classes. Make certain these classes are on the CLASSPATH or in a location identified through the -cp flag. If none of "-wsdl , - wrapperbean, -client, -server" flags are specified, java2ws will generate nothing.

Using java2ws with Ant

The java2ws command can be wrapped inside an Ant target as shown below:

<?xml version="1.0"?>
<project name="cxf java2ws" basedir=".">   
   <property name="cxf.home" location ="/usr/myapps/cxf-trunk"/>
   <property name="build.classes.dir" location ="${basedir}/build/classes"/>

   <path id="cxf.classpath">
      <pathelement location="${build.classes.dir}"/>
      <fileset dir="${cxf.home}/lib">
         <include name="*.jar"/>
      </fileset>
   </path>
      
   <target name="cxfJavaToWS">
      <java classname="org.apache.cxf.tools.java2ws.JavaToWS" fork="true">
         <arg value="-wsdl"/>
         <arg value="-o"/>
         <arg value="hello.wsdl"/>
         <arg value="service.Greeter"/>
         <classpath>
            <path refid="cxf.classpath"/>
         </classpath>
      </java>
   </target>
</project>

Make sure you set the "fork=true" attribute for the <java/> task as shown above. Also, remember to keep each word or flag within the command line options in its own <arg/> element (e.g., do not use <arg value="-o hello.wsdl"/>, but split them up into two <arg/> elements as done here.)