wsimport - JAX-WS 2.0 Beta


wsimport [options] <wsdl>


The wsimport tool generates JAX-WS portable artifacts, such as:

o Service Endpoint Interface (SEI)
o Service
o Exception class mapped from wsdl:fault (if any)
o Async Reponse Bean derived from response wsdl:message (if any)
o JAXB generated value types (mapped java classes from schema types)

These artifacts can be packaged in a WAR file with the WSDL and schema documents along with the endpoint implementation to be deployed.

wsimport tool can be launched using the command line script (Unix) or wsimport.bat(windows). There is also and ant task to import and compile the wsdl, see the details below.


The following table lists the wsimport options.

Table 1-1 wsimport Options

Specify where to place generated output files 
Specifying a target package via this command-line option, overrides any wsdl and schema binding customization for package name and the default package name algorithm defined in the specification
Specify where to place generated source files 

Multiple JAX-WS and JAXB binding files can be specified using -b option and they can be used to customize various things like package names, bean names, etc. More information on JAX-WS and JAXB binding files can be found in the customization documentation.

Ant task

An Ant task for the wsimport tool is provided along with the tool. The attributes and elements supported by the Ant task are listed below:

<wsimport wsdl="..." destdir="directory for generated class files" sourcedestdir="directory for generated source files" keep="true|false" extension="true|false" verbose="true|false" version="true|false" wsdlLocation="..." catalog="catalog file" package="package name" <binding dir="..." includes="..." /> </wsimport>

Specify where to place output generated classes 
Specify external JAX-WS or JAXB binding files
The wsdl URI passed thru this option will be used to set the value of @WebService.wsdlLocation and @WebServiceClient.wsdlLocation annotation elements on the generated SEI and Service interface 

The binding attributes is like a path-like structure @ and can also be set via nested <binding> elements, respectively. Before this task can be used, a <taskdef> element needs to be added to the project as given below:

<taskdef name="wsimport" classname=""> <classpath path="jaxws.classpath"/> </taskdef>

where jaxws.classpath is a reference to a path-like structure @, defined elsewhere in the build environment, and contains the list of classes required by the JAX-WS tools.



="${build.classes.home}" debug="true" wsdl="AddNumbers.wsdl" binding="custom.xml"/>

The above example generates client-side artifacts for AddNumbers.wsdl, stores .class files in the ${build.classes.home} directory using the custom.xml customization file. The classpath used is xyz.jar and compiles with debug information on.

<wsimport keep="true" sourcedestdir="${source.dir}"

="${build.classes.home}" wsdl="AddNumbers.wsdl"> <binding dir="${basedir}/etc" includes="custom.xml"/> </wsimport>

The above example generates portable artifacts for AddNumbers.wsdl, stores .java files in the ${source.dir} directory, stores .class files in the ${build.classes.home} directory.


Summary of Changed and Removed wsimport ant attributes:

base replaced by destdir

sourceBase is replaced by sourcedestdir

wsdlFile is replaced by wsdl httpProxy is removed. Use ant’s setproxy task instead for proxy configuration. version is removed

openSUSE Logo