.'" t
." Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
."
." This code is free software; you can redistribute it and/or modify it
." under the terms of the GNU General Public License version 2 only, as
." published by the Free Software Foundation.
."
." This code is distributed in the hope that it will be useful, but WITHOUT
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
." FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
." version 2 for more details (a copy is included in the LICENSE file that
." accompanied this code).
."
." You should have received a copy of the GNU General Public License version
." 2 along with this work; if not, write to the Free Software Foundation,
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
."
." Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
." CA 95054 USA or visit www.sun.com if you need additional information or
." have any questions.
." ` 
.TH wsimport 1 "07 Aug 2006"
." Generated by html2man

.LP
.SH NAME
wsimport \- JAX\-WS 2.0 Beta
.LP
.SH "SYNOPSIS"
.LP

.LP
.nf
\f3
.fl
wsimport [options] <wsdl>
.fl
\fP
.fi

.LP
.SH "DESCRIPTION"
.LP
.LP
The \f2wsimport\fP tool generates JAX\-WS portable artifacts, such as:
.LP
.RS 3
.TP 2
o
Service Endpoint Interface (SEI) 
.TP 2
o
Service 
.TP 2
o
Exception class mapped from wsdl:fault (if any) 
.TP 2
o
Async Reponse Bean derived from response wsdl:message (if any) 
.TP 2
o
JAXB generated value types (mapped java classes from schema types) 
.RE

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

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

.LP
.SH "OPTIONS"
.LP
.LP
The following table lists the \f2wsimport\fP options.
.br

.LP
.LP
Table 1\-1 wsimport Options
.LP
.LP
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 80 81
.nr 34 \n(.lu
.eo
.am 81
.br
.di a+
.35
.ft \n(.f
.ll \n(34u*1u/3u
.if \n(.l<\n(81 .ll \n(81u
.in 0
Specify where to place generated output files
.br
.di
.nr a| \n(dn
.nr a- \n(dl
..
.ec \
.eo
.am 81
.br
.di b+
.35
.ft \n(.f
.ll \n(34u*1u/3u
.if \n(.l<\n(81 .ll \n(81u
.in 0
Specify external JAX\-WS or JAXB binding files (Each \f2<file>\fP must have its own \f2\-b\fP)
.br
.di
.nr b| \n(dn
.nr b- \n(dl
..
.ec \
.eo
.am 81
.br
.di c+
.35
.ft \n(.f
.ll \n(34u*1u/3u
.if \n(.l<\n(81 .ll \n(81u
.in 0
Specify catalog file to resolve external entity references, it supports TR9401, XCatalog, and OASIS XML Catalog format. Please read the XML Entity and URI Resolvers document or see \f3wsimport_catalog\fP sample.
.br
.di
.nr c| \n(dn
.nr c- \n(dl
..
.ec \
.eo
.am 81
.br
.di d+
.35
.ft \n(.f
.ll \n(34u*1u/3u
.if \n(.l<\n(81 .ll \n(81u
.in 0
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
.br
.di
.nr d| \n(dn
.nr d- \n(dl
..
.ec \
.eo
.am 80
.br
.di e+
.35
.ft \n(.f
.ll \n(34u*1u/3u
.if \n(.l<\n(80 .ll \n(80u
.in 0
\f2\-httpproxy:<host>:<port>\fP
.br
.di
.nr e| \n(dn
.nr e- \n(dl
..
.ec \
.eo
.am 81
.br
.di f+
.35
.ft \n(.f
.ll \n(34u*1u/3u
.if \n(.l<\n(81 .ll \n(81u
.in 0
Specify an HTTP proxy server (port defaults to 8080)
.br
.di
.nr f| \n(dn
.nr f- \n(dl
..
.ec \
.eo
.am 81
.br
.di g+
.35
.ft \n(.f
.ll \n(34u*1u/3u
.if \n(.l<\n(81 .ll \n(81u
.in 0
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
.br
.di
.nr g| \n(dn
.nr g- \n(dl
..
.ec \
.eo
.am 81
.br
.di h+
.35
.ft \n(.f
.ll \n(34u*1u/3u
.if \n(.l<\n(81 .ll \n(81u
.in 0
Specify where to place generated source files
.br
.di
.nr h| \n(dn
.nr h- \n(dl
..
.ec \
.eo
.am 81
.br
.di i+
.35
.ft \n(.f
.ll \n(34u*1u/3u
.if \n(.l<\n(81 .ll \n(81u
.in 0
Output messages about what the compiler is doing
.br
.di
.nr i| \n(dn
.nr i- \n(dl
..
.ec \
.eo
.am 81
.br
.di j+
.35
.ft \n(.f
.ll \n(34u*1u/3u
.if \n(.l<\n(81 .ll \n(81u
.in 0
Print version information
.br
.di
.nr j| \n(dn
.nr j- \n(dl
..
.ec \
.eo
.am 80
.br
.di k+
.35
.ft \n(.f
.ll \n(34u*1u/3u
.if \n(.l<\n(80 .ll \n(80u
.in 0
\f2\-wsdllocation <location>\fP
.br
.br
.di
.nr k| \n(dn
.nr k- \n(dl
..
.ec \
.eo
.am 81
.br
.di l+
.35
.ft \n(.f
.ll \n(34u*1u/3u
.if \n(.l<\n(81 .ll \n(81u
.in 0
\f2@WebService.wsdlLocation\fP and \f2@WebServiceClient.wsdlLocation\fP value
.br
.br
.di
.nr l| \n(dn
.nr l- \n(dl
..
.ec \
.35
.nf
.ll \n(34u
.nr 80 0
.nr 38 \w\f3Option\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f2\-d <directory>\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f2\-b <path>\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\-catalog
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f2\-extension\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f2\-help\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f2\-keep\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f2\-p\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f2\-s <directory>\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f2\-verbose\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f2\-version\fP
.if \n(80<\n(38 .nr 80 \n(38
.80
.rm 80
.nr 38 \n(e-
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \n(k-
.if \n(80<\n(38 .nr 80 \n(38
.nr 81 0
.nr 38 \w\f3Description\fP
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \wDisplay help
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \wKeep generated files
.if \n(81<\n(38 .nr 81 \n(38
.81
.rm 81
.nr 38 \n(a-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(b-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(c-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(d-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(f-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(g-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(h-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(i-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(j-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(l-
.if \n(81<\n(38 .nr 81 \n(38
.35
.nf
.ll \n(34u
.nr 38 1n
.nr 79 0
.nr 40 \n(79+(0*\n(38)
.nr 80 +\n(40
.nr 41 \n(80+(3*\n(38)
.nr 81 +\n(41
.nr TW \n(81
.if t .if \n(TW>\n(.li .tm Table at line 124 file Input is too wide - \n(TW units
.fc  
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f3Option\fP\h'|\n(41u'\f3Description\fP
.ne \n(a|u+\n(.Vu
.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f2\-d <directory>\fP\h'|\n(41u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.a+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(b|u+\n(.Vu
.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f2\-b <path>\fP\h'|\n(41u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.b+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(c|u+\n(.Vu
.if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\-catalog\h'|\n(41u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.c+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(d|u+\n(.Vu
.if (\n(d|+\n(#^-1v)>\n(#- .nr #- +(\n(d|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f2\-extension\fP\h'|\n(41u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.d+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f2\-help\fP\h'|\n(41u'Display help
.ne \n(e|u+\n(.Vu
.ne \n(f|u+\n(.Vu
.if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v)
.if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\h'|\n(41u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(40u
.in +\n(37u
.e+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.f+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f2\-keep\fP\h'|\n(41u'Keep generated files
.ne \n(g|u+\n(.Vu
.if (\n(g|+\n(#^-1v)>\n(#- .nr #- +(\n(g|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f2\-p\fP\h'|\n(41u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.g+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(h|u+\n(.Vu
.if (\n(h|+\n(#^-1v)>\n(#- .nr #- +(\n(h|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f2\-s <directory>\fP\h'|\n(41u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.h+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(i|u+\n(.Vu
.if (\n(i|+\n(#^-1v)>\n(#- .nr #- +(\n(i|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f2\-verbose\fP\h'|\n(41u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.i+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(j|u+\n(.Vu
.if (\n(j|+\n(#^-1v)>\n(#- .nr #- +(\n(j|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f2\-version\fP\h'|\n(41u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.j+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(k|u+\n(.Vu
.ne \n(l|u+\n(.Vu
.if (\n(k|+\n(#^-1v)>\n(#- .nr #- +(\n(k|+\n(#^-\n(#--1v)
.if (\n(l|+\n(#^-1v)>\n(#- .nr #- +(\n(l|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\h'|\n(41u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(40u
.in +\n(37u
.k+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.l+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.fc
.nr T. 1
.T# 1
.35
.rm a+
.rm b+
.rm c+
.rm d+
.rm e+
.rm f+
.rm g+
.rm h+
.rm i+
.rm j+
.rm k+
.rm l+
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-54

.LP
.LP
Multiple JAX\-WS and JAXB binding files can be specified using \f2\-b\fP 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.
.br

.LP
.SS 
Ant task
.LP
.LP
An Ant task for the \f2wsimport\fP tool is provided along with the tool. The attributes and elements supported by the Ant task are listed below:
.br

.LP
.nf
\f3
.fl
   <wsimport           \fP
.br
\f3
.fl
      wsdl="..."      \fP
.br
\f3
.fl
      destdir="directory for generated class files"\fP
.br
\f3
.fl
      sourcedestdir="directory for generated source files"\fP
.br
\f3
.fl
      keep="true|false"\fP
.br
\f3
.fl
      extension="true|false"\fP
.br
\f3
.fl
      verbose="true|false"\fP
.br
\f3
.fl
      version="true|false"\fP
.br
\f3
.fl
      wsdlLocation="..."\fP
.br
\f3
.fl
      catalog="catalog file"\fP
.br
\f3
.fl
      package="package name"\fP
.br
\f3
.fl
      <binding dir="..." includes="..." />\fP
.br
\f3
.fl
  </wsimport>
.fl
\fP
.fi

.LP
.LP
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 80 81 82
.nr 34 \n(.lu
.eo
.am 81
.br
.di a+
.35
.ft \n(.f
.ll \n(34u*1u/4u
.if \n(.l<\n(81 .ll \n(81u
.in 0
Specify where to place output generated classes
.br
.di
.nr a| \n(dn
.nr a- \n(dl
..
.ec \
.eo
.am 81
.br
.di b+
.35
.ft \n(.f
.ll \n(34u*1u/4u
.if \n(.l<\n(81 .ll \n(81u
.in 0
Specify where to place generated source files, keep is turned on with this option
.br
.di
.nr b| \n(dn
.nr b- \n(dl
..
.ec \
.eo
.am 81
.br
.di c+
.35
.ft \n(.f
.ll \n(34u*1u/4u
.if \n(.l<\n(81 .ll \n(81u
.in 0
Keep generated files, tunred on with sourcedestdir option
.br
.di
.nr c| \n(dn
.nr c- \n(dl
..
.ec \
.eo
.am 81
.br
.di d+
.35
.ft \n(.f
.ll \n(34u*1u/4u
.if \n(.l<\n(81 .ll \n(81u
.in 0
Output messages about what the compiler is doing
.br
.di
.nr d| \n(dn
.nr d- \n(dl
..
.ec \
.eo
.am 81
.br
.di e+
.35
.ft \n(.f
.ll \n(34u*1u/4u
.if \n(.l<\n(81 .ll \n(81u
.in 0
Specify external JAX\-WS or JAXB binding files
.br
.di
.nr e| \n(dn
.nr e- \n(dl
..
.ec \
.eo
.am 81
.br
.di f+
.35
.ft \n(.f
.ll \n(34u*1u/4u
.if \n(.l<\n(81 .ll \n(81u
.in 0
allow vendor extentions (funcionality not specified by the specification). Use of extensions may result in applications that are not portable or may not interoperate with other implementations
.br
.di
.nr f| \n(dn
.nr f- \n(dl
..
.ec \
.eo
.am 80
.br
.di g+
.35
.ft \n(.f
.ll \n(34u*1u/4u
.if \n(.l<\n(80 .ll \n(80u
.in 0
\f2wsdllocation\fP
.br
.br
.di
.nr g| \n(dn
.nr g- \n(dl
..
.ec \
.eo
.am 81
.br
.di h+
.35
.ft \n(.f
.ll \n(34u*1u/4u
.if \n(.l<\n(81 .ll \n(81u
.in 0
The wsdl URI passed thru this option will be used to set the value of \f2@WebService.wsdlLocation\fP and \f2@WebServiceClient.wsdlLocation\fP annotation elements on the generated SEI and Service interface
.br
.br
.di
.nr h| \n(dn
.nr h- \n(dl
..
.ec \
.eo
.am 82
.br
.di i+
.35
.ft \n(.f
.ll \n(34u*1u/4u
.if \n(.l<\n(82 .ll \n(82u
.in 0
\f2\-wsdllocation\fP
.br
.br
.di
.nr i| \n(dn
.nr i- \n(dl
..
.ec \
.eo
.am 80
.br
.di j+
.35
.ft \n(.f
.ll \n(34u*1u/4u
.if \n(.l<\n(80 .ll \n(80u
.in 0
\f2catalog\fP
.br
.br
.di
.nr j| \n(dn
.nr j- \n(dl
..
.ec \
.eo
.am 81
.br
.di k+
.35
.ft \n(.f
.ll \n(34u*1u/4u
.if \n(.l<\n(81 .ll \n(81u
.in 0
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 wsimport_catalog sample.
.br
.di
.nr k| \n(dn
.nr k- \n(dl
..
.ec \
.eo
.am 82
.br
.di l+
.35
.ft \n(.f
.ll \n(34u*1u/4u
.if \n(.l<\n(82 .ll \n(82u
.in 0
\f2\-catalog\fP
.br
.br
.di
.nr l| \n(dn
.nr l- \n(dl
..
.ec \
.eo
.am 80
.br
.di m+
.35
.ft \n(.f
.ll \n(34u*1u/4u
.if \n(.l<\n(80 .ll \n(80u
.in 0
\f2package\fP
.br
.br
.di
.nr m| \n(dn
.nr m- \n(dl
..
.ec \
.eo
.am 81
.br
.di n+
.35
.ft \n(.f
.ll \n(34u*1u/4u
.if \n(.l<\n(81 .ll \n(81u
.in 0
Specifies the target package
.br
.di
.nr n| \n(dn
.nr n- \n(dl
..
.ec \
.eo
.am 82
.br
.di o+
.35
.ft \n(.f
.ll \n(34u*1u/4u
.if \n(.l<\n(82 .ll \n(82u
.in 0
\f2\-p\fP
.br
.br
.di
.nr o| \n(dn
.nr o- \n(dl
..
.ec \
.35
.nf
.ll \n(34u
.nr 80 0
.nr 38 \w\f3Attribute\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f2wsdl\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f2destdir\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \wsourcedestdir
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f2keep\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f2verbose\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f2binding\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f2extension\fP
.if \n(80<\n(38 .nr 80 \n(38
.80
.rm 80
.nr 38 \n(g-
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \n(j-
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \n(m-
.if \n(80<\n(38 .nr 80 \n(38
.nr 81 0
.nr 38 \w\f3Description\fP
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \wWSDL file
.if \n(81<\n(38 .nr 81 \n(38
.81
.rm 81
.nr 38 \n(a-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(b-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(c-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(d-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(e-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(f-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(h-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(k-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(n-
.if \n(81<\n(38 .nr 81 \n(38
.nr 82 0
.nr 38 \w\f3Command line\fP
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \wWSDL
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\f2\-d\fP
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\f2\-s\fP
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\f2\-keep\fP
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\f2\-verbose\fP
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\f2\-b\fP
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \w\f2\-extension\fP
.if \n(82<\n(38 .nr 82 \n(38
.82
.rm 82
.nr 38 \n(i-
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \n(l-
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \n(o-
.if \n(82<\n(38 .nr 82 \n(38
.35
.nf
.ll \n(34u
.nr 38 1n
.nr 79 0
.nr 40 \n(79+(0*\n(38)
.nr 80 +\n(40
.nr 41 \n(80+(3*\n(38)
.nr 81 +\n(41
.nr 42 \n(81+(3*\n(38)
.nr 82 +\n(42
.nr TW \n(82
.if t .if \n(TW>\n(.li .tm Table at line 261 file Input is too wide - \n(TW units
.fc  
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f3Attribute\fP\h'|\n(41u'\f3Description\fP\h'|\n(42u'\f3Command line\fP
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f2wsdl\fP\h'|\n(41u'WSDL file\h'|\n(42u'WSDL
.ne \n(a|u+\n(.Vu
.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f2destdir\fP\h'|\n(41u'\h'|\n(42u'\f2\-d\fP
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.a+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(b|u+\n(.Vu
.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'sourcedestdir\h'|\n(41u'\h'|\n(42u'\f2\-s\fP
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.b+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(c|u+\n(.Vu
.if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f2keep\fP\h'|\n(41u'\h'|\n(42u'\f2\-keep\fP
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.c+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(d|u+\n(.Vu
.if (\n(d|+\n(#^-1v)>\n(#- .nr #- +(\n(d|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f2verbose\fP\h'|\n(41u'\h'|\n(42u'\f2\-verbose\fP
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.d+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(e|u+\n(.Vu
.if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f2binding\fP\h'|\n(41u'\h'|\n(42u'\f2\-b\fP
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.e+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f2extension\fP\h'|\n(41u'\h'|\n(42u'
.br
.ne \n(f|u+\n(.Vu
.if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\h'|\n(41u'\h'|\n(42u'\f2\-extension\fP
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.f+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(g|u+\n(.Vu
.ne \n(h|u+\n(.Vu
.ne \n(i|u+\n(.Vu
.if (\n(g|+\n(#^-1v)>\n(#- .nr #- +(\n(g|+\n(#^-\n(#--1v)
.if (\n(h|+\n(#^-1v)>\n(#- .nr #- +(\n(h|+\n(#^-\n(#--1v)
.if (\n(i|+\n(#^-1v)>\n(#- .nr #- +(\n(i|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\h'|\n(41u'\h'|\n(42u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(40u
.in +\n(37u
.g+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.h+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(##u-1v
.nr 37 \n(42u
.in +\n(37u
.i+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(j|u+\n(.Vu
.ne \n(k|u+\n(.Vu
.ne \n(l|u+\n(.Vu
.if (\n(j|+\n(#^-1v)>\n(#- .nr #- +(\n(j|+\n(#^-\n(#--1v)
.if (\n(k|+\n(#^-1v)>\n(#- .nr #- +(\n(k|+\n(#^-\n(#--1v)
.if (\n(l|+\n(#^-1v)>\n(#- .nr #- +(\n(l|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\h'|\n(41u'\h'|\n(42u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(40u
.in +\n(37u
.j+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.k+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(##u-1v
.nr 37 \n(42u
.in +\n(37u
.l+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(m|u+\n(.Vu
.ne \n(n|u+\n(.Vu
.ne \n(o|u+\n(.Vu
.if (\n(m|+\n(#^-1v)>\n(#- .nr #- +(\n(m|+\n(#^-\n(#--1v)
.if (\n(n|+\n(#^-1v)>\n(#- .nr #- +(\n(n|+\n(#^-\n(#--1v)
.if (\n(o|+\n(#^-1v)>\n(#- .nr #- +(\n(o|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\h'|\n(41u'\h'|\n(42u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(40u
.in +\n(37u
.m+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(##u-1v
.nr 37 \n(41u
.in +\n(37u
.n+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(##u-1v
.nr 37 \n(42u
.in +\n(37u
.o+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.fc
.nr T. 1
.T# 1
.35
.rm a+
.rm b+
.rm c+
.rm d+
.rm e+
.rm f+
.rm g+
.rm h+
.rm i+
.rm j+
.rm k+
.rm l+
.rm m+
.rm n+
.rm o+
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-63

.LP
.LP
The \f2binding\fP attributes is like a 
.na
\f2path\-like structure\fP @
.fi
http://ant.apache.org/manual/using.html#path and can also be set via nested \f2<binding>\fP elements, respectively. Before this task can be used, a \f2<taskdef>\fP element needs to be added to the project as given below:
.LP
.nf
\f3
.fl
  <taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport">\fP
.br
\f3
.fl
      <classpath path="jaxws.classpath"/>\fP
.br
\f3
.fl
  </taskdef>
.fl
\fP
.fi

.LP
.LP
where \f2jaxws.classpath\fP is a reference to a 
.na
\f2path\-like structure\fP @
.fi
http://ant.apache.org/manual/using.html#path, defined elsewhere in the build environment, and contains the list of classes required by the JAX\-WS tools.
.LP
.SH "Examples"
.LP
.nf
\f3
.fl
  <wsimport\fP
.br
\f3
.fl
      \fP\f4destdir\fP\f3="${build.classes.home}"\fP
.br
\f3
.fl
      debug="true"\fP
.br
\f3
.fl
      wsdl="AddNumbers.wsdl"\fP
.br
\f3
.fl
      binding="custom.xml"/>
.fl
\fP
.fi

.LP
.LP
The above example generates client\-side artifacts for \f2AddNumbers.wsdl\fP, stores \f2.class\fP files in the \f2${build.classes.home}\fP directory using the \f2custom.xml\fP customization file. The classpath used is \f2xyz.jar\fP and compiles with debug information on.
.LP
.nf
\f3
.fl
  <wsimport\fP
.br
\f3
.fl
      keep="true"\fP
.br
\f3
.fl
      sourcedestdir="${source.dir}"\fP
.br
\f3
.fl
      \fP\f4destdir\fP\f3="${build.classes.home}"\fP
.br
\f3
.fl
      wsdl="AddNumbers.wsdl">\fP
.br
\f3
.fl
      <binding dir="${basedir}/etc" includes="custom.xml"/>\fP
.br
\f3
.fl
  </wsimport>
.fl
\fP
.fi

.LP
.LP
The above example generates portable artifacts for \f2AddNumbers.wsdl\fP, stores \f2.java\fP files in the \f2${source.dir}\fP directory, stores \f2.class\fP files in the \f2${build.classes.home}\fP directory.
.LP
.SH "Notes"
.LP
.LP
Summary of Changed and Removed wsimport ant attributes:
.LP
\f3base\fP replaced by \f3destdir\fP
.br

.LP
.br

.LP
\f3sourceBase\fP is replaced by \f3sourcedestdir\fP
.br

.LP
.br

.LP
\f3wsdlFile\fP is replaced by \f3wsdl\fP
.br
.br
\f3httpProxy\fP is removed. Use ant's setproxy task instead for proxy configuration.
.br
.br
\f3version\fP is removed
.br

.LP

.LP
 
