." 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
." or visit www.oracle.com if you need additional information or have any
." questions.
."
.TH wsimport 1 "04 May 2009"
." Generated from HTML by html2man (author: Eric Armstrong)
.SH "Name"
wsimport \- Java(TM) API for XML Web Services (JAX\-WS) 2.0
.LP
\f3Specification Version:\fP 2.1
.br
\f3Implementation Version:\fP 2.1.1
.br
.SH "Overview"
.LP
The \f2wsimport\fP tool generates JAX\-WS portable artifacts, such as:
.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
These artifacts can be packaged in a WAR file with the WSDL and schema documents along with the endpoint implementation to be deployed. also provides wsimport ant task, see 
.na
\f2Wsimport ant task\fP @
.fi
https://jax\-ws.dev.java.net/nonav/2.1.1/docs/wsimportant.html.
.br

.LP
.SH "Launching wsimport"
.RS 3
.TP 2
o
\f3Solaris/Linux\fP 
.RS 3
.TP 2
*
\f2/bin/wsimport.sh \-help\fP 
.RE
.TP 2
o
\f3Windows\fP 
.RS 3
.TP 2
*
\f2\\bin\\wsimport.bat \-help\fP 
.RE
.RE

.LP
.SH "Syntax"
.nf
\f3
.fl
wsimport [options] <wsdl>
.fl
\fP
.fi
.LP
The following table lists the \f2wsimport\fP options.
.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
Pass this option to JAXB schema compiler
.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
Specify catalog file to resolve external entity references, it supports TR9401, XCatalog, and OASIS XML Catalog format. Please read the documentation of
.na
\f2catalog\fP @
.fi
https://jax\-ws.dev.java.net/nonav/2.1.1/docs/catalog\-support.html and see \f3catalog\fP sample.
.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/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 e| \n(dn
.nr e- \n(dl
..
.ec \
.eo
.am 80
.br
.di f+
.35
.ft \n(.f
.ll \n(34u*1u/3u
.if \n(.l<\n(80 .ll \n(80u
.in 0
\f3\-httpproxy:<host>:<port> \fP
.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
Specify an HTTP proxy server (port defaults to 8080)
.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
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 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
Specify where to place generated source files
.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
Output messages about what the compiler is doing
.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/3u
.if \n(.l<\n(81 .ll \n(81u
.in 0
Print version information
.br
.di
.nr k| \n(dn
.nr k- \n(dl
..
.ec \
.eo
.am 80
.br
.di l+
.35
.ft \n(.f
.ll \n(34u*1u/3u
.if \n(.l<\n(80 .ll \n(80u
.in 0
\f3\-wsdllocation <location>\fP
.br
.di
.nr l| \n(dn
.nr l- \n(dl
..
.ec \
.eo
.am 81
.br
.di m+
.35
.ft \n(.f
.ll \n(34u*1u/3u
.if \n(.l<\n(81 .ll \n(81u
.in 0
\f2@WebServiceClient.wsdlLocation\fP value
.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/3u
.if \n(.l<\n(81 .ll \n(81u
.in 0
Generate code as per the given JAX\-WS specification version. version 2.0 will generate compliant code for JAX\-WS 2.0 spec.
.br
.di
.nr n| \n(dn
.nr n- \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\f3\-d <directory> \fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f3\-b <path> \fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f3\-B <jaxbOption>\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f3\-catalog\fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f3\-extension \fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f3\-help \fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f3\-keep \fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f3\-p \fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f3\-s <directory> \fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f3\-verbose \fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f3\-version \fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f3\-target \fP
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \w\f3\-quiet \fP
.if \n(80<\n(38 .nr 80 \n(38
.80
.rm 80
.nr 38 \n(f-
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \n(l-
.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
.nr 38 \wSuppress wsimport output
.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(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(k-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(m-
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \n(n-
.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 158 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'\f3\-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'\f3\-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'\f3\-B <jaxbOption>\fP\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'\f3\-catalog\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
.ne \n(e|u+\n(.Vu
.if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f3\-extension \fP\h'|\n(41u'
.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 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f3\-help \fP\h'|\n(41u'Display help
.ne \n(f|u+\n(.Vu
.ne \n(g|u+\n(.Vu
.if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v)
.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'\h'|\n(41u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(40u
.in +\n(37u
.f+
.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
.g+
.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'\f3\-keep \fP\h'|\n(41u'Keep generated files
.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'\f3\-p \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'\f3\-s <directory> \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'\f3\-verbose \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
.if (\n(k|+\n(#^-1v)>\n(#- .nr #- +(\n(k|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f3\-version \fP\h'|\n(41u'
.mk ##
.nr 31 \n(##
.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(31u
.ne \n(l|u+\n(.Vu
.ne \n(m|u+\n(.Vu
.if (\n(l|+\n(#^-1v)>\n(#- .nr #- +(\n(l|+\n(#^-\n(#--1v)
.if (\n(m|+\n(#^-1v)>\n(#- .nr #- +(\n(m|+\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
.l+
.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
.m+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(n|u+\n(.Vu
.if (\n(n|+\n(#^-1v)>\n(#- .nr #- +(\n(n|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f3\-target \fP\h'|\n(41u'
.mk ##
.nr 31 \n(##
.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(31u
.ta \n(80u \n(81u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'\f3\-quiet \fP\h'|\n(41u'Suppress wsimport output
.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+
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-66
.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 
.na
\f2customization documentation\fP @
.fi
https://jax\-ws.dev.java.net/nonav/2.1.1/docs/customizations.html.
.LP
.SH "Example"
.nf
\f3
.fl
\fP\f3wsimport \-p stockquote http://stockquote.xyz/quote?wsdl\fP
.fl
.fi
.LP
This will generate the Java artifacts and compile them by importing the \f2http://stockquote.xyz/quote?wsdl\fP.
.br
 
