The wsimport
generates JAX-WS portable artifacts, such as:
To use this wsimport task, a <taskdef>
element needs to be
added to the project as given below:
<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport">
<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.
<wsimport wsdl="..." destdir="directory for generated class files" sourcedestdir="directory for generated source files" keep="true|false" extension="true|false" verbose="true|false" wsdlLocation="..." catalog="catalog file" package="package name" binding="..." quiet="true|false" xadditionalHeaders="true|false" xauthfile="authorization file" xdebug="true|false" xNoAddressingDatabinding="true|false" xnocompile="true|false" <binding dir="..." includes="..." /> <arg value="..."/> <xjcarg value="..."/> <xmlcatalog refid="another catalog file"/> </wsimport>
wsimport
supports the following parameter attributes.
Attribute |
Description |
Required |
Command line |
|
WSDL file |
Yes |
WSDL location |
|
Specify where to place output generated classes |
No. Defaults to current working directory |
|
sourcedestdir |
Specify where to place generated source code files, keep is turned on with this option |
No. Defaults to current working directory |
|
|
Keep generated source code files, tunred on with sourcedestdir option |
No. Defaults to false. |
|
|
Output messages about what the compiler is doing |
No. Defaults to false. |
|
|
Specify external JAX-WS or JAXB binding files or additional schema files (Each |
No. No defaults. |
|
|
allow vendor extensions (functionality not specified by the
specification). Use of extensions may result in applications that are
not portable or may not interoperate with other implementations |
No. Defaults to false. |
|
wsdllocation |
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 |
No. Defaults to the wsdl URL passed to wsdl attribute. |
-wsdllocation |
catalog |
Specify catalog file to resolve
external entity references, it supports TR9401, XCatalog, and OASIS XML
Catalog format. Additionally, ant xmlcatalog type can be used to
resolve entities, see catalog sample and
documentation on catalog. |
No. No defaults. |
-catalog |
package |
Specifies the target package |
No. It default to the WSDL/Schema targetNamespace to package mapping as defined by the JAXB 2.1 spec. |
-p |
target |
Generate code as per the given JAXWS specification version. version 2.0 will generate compliant code for JAXWS 2.0 spec. |
No. Defaults to 2.0 |
-target |
quiet |
Suppress wsimport output |
No. Defaults to false. |
-quiet |
xadditionalHeaders |
Map headers not bound to request or response message to Java method parameterst |
No. Defaults to false. |
-XadditionalHeaders |
xauthfile |
File to carry authorization information in the format http://username:password@example.org/stock?wsdl. |
No. Defaults to $HOME/.metro/auth |
-Xauthfile |
xdebug |
Print debug information |
No. Defaults to false. |
-quiet |
xNoAddressingDatabinding |
Enable binding of W3C EndpointReferenceType to Java |
No. Defaults to false. |
-quiet |
xnocompile |
Do not compile generated Java files |
No. Defaults to false. |
-Xnocompile |
wsimport
supports the following nested element parameters.
To specify more than one external binding file at the same time, use a
nested
<binding>
element, which has the same syntax as
<fileset>
.
Additional command line arguments passed to the wsimport
. For details
about the syntax, see
the relevant
section in the Ant manual. This nested element can be used to
specify various options not natively supported in the
wsimport
Ant task. For example, currently
there is no native support for
the following
wsimport command-line options:
The usage is similar to &arg> nested element, except that these arguments are directly passed to the XJC tool (JAXB Schema Compiler), which will be used for compiling the schema referenced in the wsdl. For details about the syntax, see the relevant section in the Ant manual.
The xmlcatalog element is used to resolve entities when parsing schema documents.
To run on JDK 6 follow these instructions.
<wsimport destdir="${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}" destdir="${build.classes.home}" extension="true" wsdl="AddNumbers.wsdl"> <xjcarg value="-cp"/> <xjcarg file="path/to/fluent-api.jar" /> <xjcarg value="-Xfluent-api"/> </wsimport>
The above example shows how to generates artifacts for AddNumbers.wsdl
while passing options to JAXB xjc tool for XML Schema to Java compilation using your JAXB plugin.
Note extension attribute which is set to true. You need to set this to use JAXB
plugins.
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.