I added in the <java/> task version (not official Ant task) to the
WSDL2Java page. (I'll do the Java2WSDL one next).
I was probably in error when I recommended earlier having a separate Ant
task. Sorry about that, but it's just that I'm not seeing the <java/>
alone version to be that difficult to use, and it cleanly maps (by
definition) 100% to the command-line options.
Still, I guess I would recommend we keep the official Ant tasks (Axis
and Glassfish both have them, although Axis frequently uses the <java/>
version in its documentation and samples), but dormant/undocumented
unless there is a greater demand for them in the future. However, with
many Ant folks moving to Maven and (now) a clearly documented way of
using Ant with the <java/> task below, that day may not come.
Glen
Am Samstag, den 25.08.2007, 03:35 -0700 schrieb [EMAIL PROTECTED]:
> Page Edited : CXF20DOC : WSDL to Java
> WSDL to Java has been edited by Glen Mazza (Aug 25, 2007).
>
> Change summary:
>
> Added command-line version of Ant task to documentation.
>
>
> (View changes)
>
> Content:
> Synopsis
> wsdl2java [[-?]|[-help]|[-h]] [-fe <frontend name>] [-db <data binding name>]
> [-wv <wsdl version>]
> [-p [[wsdl-namespace=] PackageName ] ...]
> [-b <binding-name>] [-catalog <catalog-file-name>] [-d <output-directory>]
> [-compile]
> [-classdir <compile-class-dir>] [-client] [-server] [-impl] [-all] [-ant]
> [-nexclude [schema-namespace[=java-packagename]] ...]
> [-exsh (true/false)] [-dns(true/false)] [-dex (true/false)] [-validate] [-v]
> [[-verbose]|[-quiet]] {wsdlfile}
> Description
> wsdl2java takes a WSDL document and generates fully annotated Java
> code from which to implement a service. The WSDL document must have a
> valid portType element, but it does not need to contain a binding
> element or a service element. Using the optional arguments you can
> customize the generated code. In addition, wsdl2java can generate an
> Ant based makefile to build your application.
>
>
> Example
> wsdl2java HelloWorld.wsdl
>
> wsdl2java -p com.iona.greeting Greeting.wsdl
>
> wsdl2java -client HelloWorld.wsdl
>
> (See below for usage with Apache Ant and Maven.)
>
>
> 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
> Displays the online help for this
> utility.
> -h
> Displays the online help for this
> utility.
> -fe frontend-name
> Specifies the frontend. Default is
> JAXWS. Currently supports only
> JAXWS frontend.
> -db databinding-name
> Specifies the databinding. Default
> is JAXB. Currently supports only
> JAXB databinding.
> -wv wsdl-version
> Specifies the wsdl version .Default
> is WSDL1.1. Currently suppports
> only WSDL1.1 version.
> -p [ wsdl-namespace= ] PackageName
> Specifies zero, or more, package
> names to use for the generated
> code. Optionally specifies the WSDL
> namespace to package name mapping.
> -b binding-name
> Specifies zero, or more, JAXWS or
> JAXB binding files. Use spaces to
> separate multiple entries.
> -catalog catalog-file-name
> Specify catalog file to map the
> imported wsdl/schema
> -d output-directory
> Specifies the directory into which
> the generated code files are
> written.
> -compile
> Compiles generated Java files.
> -classdir complile-class-dir
> Specifies the directory into which
> the compiled class files are
> written.
> -client
> Generates starting point code for a
> client mainline.
> -server
> Generates starting point code for a
> server mainline.
> -impl
> Generates starting point code for
> an implementation object.
> -all
> Generates all starting point code:
> types, service proxy, service
> interface, server mainline, client
> mainline, implementation object,
> and an Ant build.xml file.
> -ant
> Generates the Ant build.xml file.
> -nexclude schema-namespace
> [=java-packagename]
> Ignore the specified WSDL schema
> namespace when generating code.
> This option may be specified
> multiple times. Also, optionally
> specifies the Java package name
> used by types described in the
> excluded namespace(s).
> -exsh (true/false)
> Enables or disables processing of
> extended soap header message
> binding.Default to false
> -dns (true/false)
> Enables or disables the loading of
> the default namespace package name
> mapping. Default is true and
> http://www.w3.org/2005/08/addressing=org.apache.cxf.ws.addressing namespace
> package mapping will be enabled.
> -dex (true/false)
> Enables or disables the loading of
> the default excludes namespace
> mapping. Default is true.
> -validate
> Enables validating the WSDL before
> generating the code.
> -v
> Displays the version number for the
> tool.
> -verbose
> Displays comments during the code
> generation process.
> -quiet
> Suppresses comments during the code
> generation process.
> wsdlfile
> The path and name of the WSDL file
> to use in generating the code.
>
> You must specify the absolute or relative path to the WSDL document as
> the last argument.
>
>
> Using wsdl2java with Ant
> The wsdl2java command can be wrapped inside an Ant target, as shown
> below:
>
> <?xml version="1.0"?>
> <project name="cxf wsdl2java" basedir=".">
> <property name="cxf.home" location ="/usr/myapps/cxf-2.0.1"/>
>
> <path id="cxf.classpath">
> <fileset dir="${cxf.home}/lib">
> <include name="*.jar"/>
> </fileset>
> </path>
>
> <target name="cxfWSDLToJava">
> <java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true">
> <arg value="-client"/>
> <arg value="-d"/>
> <arg value="src"/>
> <arg value="MyWSDL.wsdl"/>
> <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="-d src"/>, but split them up into two <arg/> elements as done
> here.)
>
>
> JAXWS Customization
> By default, the frontend we used in CXF wsdl2java tool is JAXWS
> frontend, in JAXWS case, it allow us to customize the WSDL to Java
> mapping through the customization binding file, in
> samples/hello_world_async, you can see there is a
> wsdl/async_binding.xml binding file , which will be loaded by the tool
> and generate the extra async methods in the SEI.
>
> Q: What if I want to change the generated SEI name?
>
> A: We don't have an option to do this, but you can have a binding file
> like the following snippet to achieve this goal
>
> <bindings
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> wsdlLocation="hello_world.wsdl"
> xmlns="http://java.sun.com/xml/ns/jaxws">
> <bindings node="wsdl:definitions/wsdl:portType">
> <class name="GreeterSEI"/>
> </bindings>
> </bindings>
> Q: I had the binding file, how to pass this file to the wsdl2java
>
> A: If you are using the command line tool, you can do this
>
> wsdl2java HelloWorld.wsdl -b my_binding.xml
>
> If you are using the CXF ant wsdl2java macro, you can do this
>
> <wsdl2java file="hello_world.wsdl"
> bindingfile="${basedir}/wsdl/my_binding.xml"/>
> If you are using the CXF Maven2 codegen-plugin, you should do this
>
> <plugin>
> <groupId>org.apache.cxf</groupId>
> <artifactId>cxf-codegen-plugin</artifactId>
> <version>2.0-incubator-RC-SNAPSHOT</version>
> <executions>
> <execution>
> <id>generate-sources</id>
> <phase>generate-sources</phase>
>
> <configuration>
>
> <sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot>
> <wsdlOptions>
> <wsdlOption>
> <wsdl>${YOUR_WSDL_PATH}/myService.wsdl</wsdl>
> <extraargs>
> <extraarg>-b</extraarg>
>
> <extraarg>${YOUR_BINDING_FILE_PATH}/my_binding.xml</extraarg>
>
> </extraargs>
> </wsdlOption>
> </wsdlOptions>
> </configuration>
> <goals>
> <goal>wsdl2java</goal>
> </goals>
> </execution>
> </executions>
> </plugin>
> Q: How to map xsd:dateTime to java.util.Date?
> Well, people don't like the XMLGregorianCalendar which is the default
> mapping from the xsd:dateTime (xsd:time and xsd:date as well),
> We can use the jaxws customization to change the default mapping, here
> are some sample binding files
> If you have schema inside the wsdl, here is the binding file you can
> use:
>
> <jaxws:bindings wsdlLocation="YOUR_WSDL_LOCATION"
> xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
> <jaxws:bindings node="wsdl:definitions/wsdl:types/xs:[EMAIL
> PROTECTED]'THE_NAMESPACE_OF_YOUR_SCHEMA']">
> <jxb:globalBindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
> <jxb:javaType name="java.util.Date" xmlType="xs:dateTime"
>
> parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime"
>
> printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDateTime"/>
> </jxb:globalBindings>
> </jaxws:bindings>
> </jaxws:bindings>
> If you want to use java.util.Calendar, just change the
> org.apache.cxf.tools.common.DataTypeAdapter to
> javax.xml.bind.DatatypeConverter, and change the name value to
> "java.util.Calendar"
>
> If your schema is out of wsdl, here is an example you can try:
>
> <jxb:bindings version="1.0"
> xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
> <jxb:bindings schemaLocation="YOUR_SCHEMA_LOCATION" node="/xs:schema">
> <jxb:globalBindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
> <jxb:javaType name="java.util.Date" xmlType="xs:dateTime"
>
> parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime"
>
> printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDateTime"/>
> </jxb:globalBindings>
> </jxb:bindings>
> </jxb:bindings>
> Q: My WSDL is in wrapped style, but how can I generate the bare style
> code?
>
> A: You can customize the WSDL with the following binding file:
>
> <jaxws:bindings
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> wsdlLocation="your.wsdl"
> xmlns="http://java.sun.com/xml/ns/jaxws"
> xmlns:jaxws="http://java.sun.com/xml/ns/jaxws">
> <enableWrapperStyle>false</enableWrapperStyle>
> </jaxws:bindings>
> Q: What else can I change with the JAXWS customization binding file?
>
> A: You can find the full list of customization items in Chapter 8 of
> the JAX-WS Specification.
>
>
> Maven Plugins
> In CXF we have a mavens plugin, called "cxf-codegen-plugin", which
> includes the goal "wsdl2java", you can find more information in Maven
> Integration and Plugin
>
>
>
>
> Powered by Atlassian Confluence (Version: 2.2.9 Build:#527 Sep 07,
> 2006) - Bug/feature request
>
> Unsubscribe or edit your notifications preferences
>