# Java TM API for XML Web Services
(JAX-WS)
wsgen

Specification Version: 2.2
Implementation Version: 2.2.5

- Overview
- Wsimport
- Wsimport Ant Task
- Wsgen
- Wsgen Ant Task
- Apt

## Contents

## 1. Overview

The `wsgen` tool generates JAX-WS portable artifacts used in JAX-WS web services. The tool reads a web service endpoint class and generates all the required artifacts for web service deployment, and invocation. JAX-WS RI 2.2.5 also provides a wsgen ant task, see Wsgen ant task for details.

## 2. Launching wsgen

- Solaris/Linux
  - JAXWS_HOME/bin/wsgen.sh -help
- Windows
  - JAXWS_HOME\bin\wsgen.bat -help

## 3. Running on JDK 6

To run on JDK 6 follow these instructions.

## 4. Syntax

    wsgen [options] <SEI>

The following table lists the `wsgen` options.

Option | Description
--- | ---
`-classpath <path>` | Specify where to find input class files
`-cp <path>` | Same as `-classpath <path>`
`-d <directory>` | Specify where to place generated output files
`-extension` | 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
`-help` | Display help
`-keep` | Keep generated files
`-r <directory>` | Used only in conjunction with the -wsdl option. Specify where to place generated resource files such as WSDLs
`-s <directory>` | Specify where to place generated source files
`-verbose` | Output messages about what the compiler is doing
`-version` | Print version information. Use of this option will ONLY print version information. Normal processing will not occur.
`-wsdl[:protocol]` | By default `wsgen` does not generate a WSDL file. This flag is optional and will cause `wsgen` to generate a WSDL file and is usually only used so that the developer can look at the WSDL before the endpoint is deploy. The `protocol` is optional and is used to specify what protocol should be used in the `wsdl:binding`. Valid protocols include: `soap1.1` and `Xsoap1.2`. The default is `soap1.1`. `Xsoap1.2` is not standard and can only be used in conjunction with the `-extension` option.
`-servicename <name>` | Used only in conjunction with the `-wsdl` option. Used to specify a particular `wsdl:service` name to be generated in the WSDL. Example, `-servicename "{http://mynamespace/}MyService"`
`-portname <name>` | Used only in conjunction with the `-wsdl` option. Used to specify a particular `wsdl:port` name to be generated in the WSDL. Example, `-portname "{http://mynamespace/}MyPort"`
`-inlineSchemas` | Used to inline schemas in a generated wsdl. Must be used in conjunction with the `-wsdl` option.

## 5. Example

wsgen -d stock -cp myclasspath stock.StockService

This will generate the wrapper classes needed for StockService annotated with @WebService annotation inside stock directory.

wsgen -wsdl -d stock -cp myclasspath stock.StockService

This will generate a SOAP 1.1 WSDL and schema for your Java class stock.StockService annotated with @WebService annotation.

wsgen -wsdl:Xsoap1.2 -d stock -cp myclasspath stock.StockService

Will generate a SOAP 1.2 WSDL.

Note that you dont have to generate WSDL at the development time as JAX-WS runtime will automatically generate a WSDL for you when you deploy your service.