CXF Command-Line Tools - 6.3

Talend ESB Service Developer Guide

EnrichVersion
6.3
EnrichProdName
Talend Data Fabric
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
task
Design and Development
Installation and Upgrade
EnrichPlatform
Talend ESB

The most up-to-date instructions for building SOAP web-services are maintained in the CXF User's Guide. In particular, see the wsdl2java utility for contract-first development and java2ws tool for the start-from-Java approach. For Maven-based projects, CXF offers plugins for both WSDL-first (cxf-codegen-plugin) and Java-first (cxf-java2ws-plugin) development.

WSDL to Java

wsdl2java creates JAX-WS and JAXB (or other databinding framework) objects from a service WSDL. It has the following parameters:

ParameterOption
-hDisplays the online help for this utility and exits.
-fe frontend-nameSpecifies the frontend. Default is JAXWS. Currently supports only JAXWS frontend and a "jaxws21" frontend to generate JAX-WS 2.1 compliant code.
-db databinding-nameSpecifies the databinding. Default is jaxb. Currently supports jaxb, xmlbeans, sdo (sdo-static and sdo-dynamic), and jibx.
-wv wsdl-versionSpecifies the wsdl version .Default is WSDL1.1. Currently supports only WSDL1.1 version.
-p [ wsdl-namespace= ] PackageNameSpecifies zero, or more, package names to use for the generated code. Optionally specifies the WSDL namespace to package name mapping.
-sn service-nameThe WSDL service name to use for the generated code.
-b binding-nameSpecifies JAXWS or JAXB binding files or XMLBeans context files. Use multiple -b flags to specify multiple entries.
-catalog catalog-file-nameSpecify catalog file to map the imported wsdl/schema
-d output-directorySpecifies the directory into which the generated code files are written.
-compileCompiles generated Java files.
-classdir compile-class-dirSpecifies the directory into which the compiled class files are written.
-clientGenerates starting point code for a client mainline.
-clientjar jar-file-nameGenerates the jar file which contains all the client classes and wsdls; wsdlLocation param ignored with this setting.
-serverGenerates starting point code for a server mainline.
-implGenerates starting point code for an implementation object.
-allGenerates all starting point code: types, service proxy, service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.
-antSpecify to generate an Ant build.xml script.
-autoNameResolutionAutomatically resolve naming conflicts without requiring the use of binding customizations.
-defaultValues= [DefaultValueProvider impl ]Specifies that default values are generated for the impl and client. You can also provide a custom default value provider. The default provider is RandomValueProvider
-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 implicit SOAP headers (i.e. SOAP headers defined in the wsdl:binding but not wsdl:portType section.) Default is 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.
-validateEnables validating the WSDL before generating the code.
-keepSpecifies that the code generator will not overwrite any preexisting files. You will be responsible for resolving any resulting compilation issues.
-wsdlLocation wsdlLocationSpecifies the value of the @WebServiceClient annotation's wsdlLocation property.
-xjc<xjc args>Specifies a comma separated list of [arguments|https://jaxb.dev.java.net/nonav/2.2/docs/xjc.html] that are passed directly to the XJC processor when using the JAXB databinding. A list of available XJC plugins can be obtained using -xjc -X.
-noAddressBindingFor compatibility with CXF 2.0, this flag directs the code generator to generate the older CXF proprietary WS-Addressing types instead of the JAX-WS 2.1 compliant WS-Addressing types.
-vDisplays the version number for the tool.
-verboseDisplays comments during the code generation process.
-quietSuppresses comments during the code generation process.
-exceptionSupersuperclass for any fault beans generated from wsdl:fault elements (defaults to java.lang.Exception)
-reserveClass classnameUsed with -autoNameResolution, defines a class names for wsdl-to-java not to use when generating classes. Use this option multiple times for multiple classes.
-allowElementReferencesIf true, disregards the rule given in section 2.3.1.2(v) of the JAX-WS 2.2 specification disallowing element references when using wrapper-style mapping.
-asyncMethods=foo,bar,...List of subsequently generated Java class methods to allow for client-side asynchronous calls, similar to enableAsyncMapping in a JAX-WS binding file.
-bareMethods=foo,bar,...List of subsequently generated Java class methods to have wrapper style (see below), similar to enableWrapperStyle in JAX-WS binding file.
-mimeMethods=foo,bar,...List of subsequently generated Java class methods to enable mime:content mapping, similar to enableMIMEContent in JAX-WS binding file.
-faultSerialVersionUID <fault-serialVersionUID>How to generate suid of fault exceptions. Use NONE, TIMESTAMP, FQCN, or a specific number. Default is NONE.
-mark-generatedAdds the @Generated annotation to classes generated.
_wsdlurl_The path and name of the WSDL file to use in generating the code.

Examples of wsdl2java in use:

  • wsdl2java HelloWorld.wsdl
  • wsdl2java -p com.mycompany.greeting Greeting.wsdl
  • wsdl2java -client HelloWorld.wsdl

Java to WS

Name

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

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>* 
   -address <port-address> -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 to start the web service and client side code.

Options

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

Option

Interpretation

-? , -h , -help

Displays the online help for this utility and exits.

-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.

-address

Specify the port address.

-beans

Specify the pathname of a file defining additional Spring beans to customize databinding configuration.

-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.

Examples

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