The wsgen command-line tool generates
the necessary artifacts required for Java API for XML Web Services (JAX-WS) applications when starting from Java code.
When using a bottoms-up approach to develop JAX-WS Web services
and you are starting from a service endpoint implementation, use the wsgen tool to generate the required JAX-WS artifacts.
Supported configurations: The wsimport, wsgen, schemagen and xjc command-line
tools are not supported on the z/OS® platform.
This functionality is provided by the assembly tools provided with WebSphere® Application Server running on
the z/OS platform. Read about these command-line
tools for JAX-WS applications to learn more about these tools.sptcfg
Best practice: WebSphere provides Java API for XML-Based Web Services (JAX-WS)
and Java Architecture for XML Binding (JAXB) tooling.
The wsimport, wsgen, schemagen and xjc command-line
tools are located in the app_server_root\bin\ directory.
Similar tooling is provided by the Java SE
Development Kit (JDK) 6. For the most part, artifacts generated by
both the tooling provided with WebSphere and
the JDK are the same. In general, artifacts generated by the JDK tools
are portable across compliant runtime environments. However, it is
a best practice to use the WebSphere tools to achieve
seamless integration within the WebSphere environment. bprac
The
wsgen tool accepts a properly annotated
service endpoint implementation using the @WebService annotation as
input and generates the following artifacts:
- any additional Java Architecture for XML Binding
(JAXB) classes that are required to marshal and unmarshal the message
contents.
- a WSDL file if the optional -wsdl argument is
specified. The wsgen tool does not automatically
generate the WSDL file.
Avoid trouble:
- This utility requires the existence
of profile that defines your runtime environment. Verify that a profile
exists before running this utility.
gotcha
Avoid trouble: Beginning with Sun and HP JDK Version
1.6 containing JAX-WS tooling Version 2.1.6, the behavior of the JAX-WS
runtime environments and tooling has changed in how it determines
which methods are exposed as Web services operations in an effort
to better adhere to the JAX-WS specifications. Applications that might
be affected by this change include Web services applications that
do not specify a WSDL file or an explicit service endpoint interface
(SEI). To learn more, see the exposing methods in SEI-based JAX-WS
Web services information. gotcha
With JAX-WS applications, the wsgen command-line tool might not locate shared class files. You can specify
the location of these class files using the com.ibm.websphere.webservices.wsdl_generation_extra_classpath
custom property. For more information, see the documentation about
the Java virtual machine custom
properties.
Parameters
The service_implementation_class name is the only parameter that is required. The following parameters
are optional for the wsgen command:
- -classpath <path>
- Specifies the location of the service implementation class.
- -cp <path>
- This is the same as -classpath <path>.
- -d <directory>
- Specifies where to place the generated output files.
- -extension
- Specifies whether to enable custom extensions for functionality
not specified by the JAX-WS specification. Use of the extensions can
result in applications that are not portable or do not interoperate
with other implementations.
- -help
- Displays the help menu.
- -keep
- Specifies whether to keep the generated source files.
- -r <directory>
- This parameter is only used in conjunction with the -wsdl parameter. Specifies where to place the generated WSDL file.
- -s <directory>
- Specifies the directory to place the generated source files.
- -verbose
- Specifies to output messages about what the compiler is doing.
- -version
- Prints the version information. If you specify this option, only
the version information will be output and normal command processing
will not occur.
- -wsdl [:protocol]
- By default, the wsgen tool does not generate
a WSDL file. This optional parameter causes wsgen to generate a WSDL file and is typically only used to enable a developer
to review a WSDL file before the endpoint is deployed. The protocol is optional and specifies the protocol used in
the wsdl:binding. Valid values for protocol are soap 1.1 and Xsoap 1.2. The
default value is soap 1.1. The Xsoap 1.2 value is not standard and is only used in conjunction with the -extension option.
- -servicename <name>
- This parameter is only used in conjunction with the -wsdl option. Specifies a wsdl:service name to be generated
in the WSDL file. For example,
-servicename "{http://mynamespace/}MyService"
- -portname
- This parameter is only used in conjunction with the -wsdl option. Specifies a wsdl:port name to be generated
in the WSDL file. For example,
-portname "{http://mynamespace/}MyPort"