Advanced Customization > Info*Engine User’s Guide > Task Webject Reference > Management Webjects > Generate-WSDL
  
Generate-WSDL
DESCRIPTION
Generates Web Service Definition Language (WSDL) from specified Info*Engine tasks for use by SOAP clients. WSDL is an XML-based language used to define client/server interfaces.
For the Info*Engine SOAP service to perform in a predictable manner, you must bind to the service using the HTTP URL specified in the SOAP port exposed in the generated WSDL, since it contains additional query parameters to pass to the underlying SOAP service.
The generated WSDL contains SOAP information specific to the SOAP RPC servlet that allows it to properly route requests. The generated WSDL contains a single service named IESoapServlet bound to a port named IESoapPort, and describes all methods and method signatures supported for the class specified in the CLASS parameter. For more information on SOAP, see Simple Object Access Protocol (SOAP) Web Service.
The tasks from which WSDL is generated must be prefaced with special comment lines that define their parameters and results (similar to Javadoc comment syntax). The webject parses all of the tasks found at the specified location and uses the special comment lines within them to generate WSDL. Depending on which webject parameters are specified, the WSDL can be written back as a BLOB or added to the VDB as a group.
SYNTAX
<ie:webject name="Generate-WSDL" type="MGT">
  <ie:param name="CLASS" data="class_name"/>
  <ie:param name="GROUP_OUT" data="output_group_name"/>
  <ie:param name="REPOSITORY" data="repository"/>
  <ie:param name="REPOSITORY_TYPE" data="repository_type"/>
  <ie:param name="SOAP_URI" data="uri"/>
  <ie:param name="STYLE" data="rpc"/>
  <ie:param name="TASKS" data="task_location"/>
  <ie:param name="VERSION" data="1.0"/>
</ie:webject>
PARAMETERS
Required
Select
Optional
CLASS
GROUP_OUT
REPOSITORY
SOAP_URI
REPOSITORY_TYPE
STYLE
TASKS
VERSION
CLASS
Specifies the Java class with which the WSDL methods are associated. The value specified must correspond to an existing type identifier definition found in the supporting LDAP directory. The REPOSITORY or REPOSITORY_TYPE parameters can be used to direct the webject to the correct location within LDAP to discover the type identifier. This parameter is required.
GROUP_OUT
Specifies the name of the output group to create. If GROUP_OUT is specified, then the output is added to the VDB as a group with the specified name. The group contains one element for each command delegate exposed by the type identifier corresponding to the CLASS parameter. Each group element contains one attribute per task parameter. The parameter name becomes the attribute name. The parameter type become the attribute value. Method name and task are stored as metadata on each element with the identifiers com.infoengine.soap.wsdl.methodName and com.infoengine.soap.wsdl.task respectively. If comments are specified on either the entire task or individual parameters the comments are stored as metadata with the identifier com.infoengine.soap.wsdl.comment. Task comments are stored as metadata on the corresponding element. Parameter comments are stored as metadata on the corresponding attribute. If GROUP_OUT is not specified, then SOAP_URI must be specified.
REPOSITORY
Specifies the name of the repository whose repository type contains the required type identifier and task delegate definitions. For example, host.myCompany.com, which represents an installed instance of Info*Engine with a repository type of com.ptc.windchill. If this parameter is not specified the repository type is generated based on the virtual machine name of the running JVM. For example, a virtual machine name of com.myCompany.host.server results in a repository of host.myCompany.com. This parameter is optional.
REPOSITORY_TYPE
Specifies the name of the repository type that contains the required type identifier and task delegate definitions. For example, com.ptc.windchill. If this parameter is not specified, then the behavior described with the REPOSITORY parameter is carried out to attempt to dynamically discover the appropriate repository type. This parameter is optional.
SOAP_URI
Identifies the URI of the SOAP service used to route requests. Only fully-qualified URIs should be specified for this parameter. For example:
http://localhost/Windchill/servlet/RPC
where RPC is an instance of com.infoengine.soap.SoapRPCRouter. If this parameter is specified, the WSDL is generated and returned to the client as a BLOB. If GROUP_OUT is not specified, SOAP_URI must be specified.
STYLE
Acceptable values are rpc or document. This parameter governs how the generated WSDL represents Info*Engine SOAP services, and how those services behave when it comes to processing requests and generating responses. If the value is rpc, the generated WSDL is Remote Procedure Call (rpc)-style SOAP. If the value is document, the generated WSDL is document-style SOAP. The default value is rpc. This parameter is only processed if the VERSION parameter is set to 1.1. This parameter is optional.
Since the defaults for VERSION and STYLE are 1.0 and rpc respectively, this means that by default Info*Engine SOAP services are rpc-encoded SOAP services. If you want Info*Engine SOAP to behave rpc-literal, you must specify rpc and 1.1 for STYLE and VERSION respectively. If you want Info*Engine SOAP to behave document-literal, specify document and 1.1 respectively.
TASKS
Specifies the location, relative to the configured task root, of the tasks to be externalized to the SOAP client using WSDL. This parameter is optional.
VERSION
Acceptable values are 1.0 or 1.1. This parameter governs whether the generated WSDL is SOAP encoded or literal. The default value is 1.0, which results in encoded SOAP. This parameter is select with the STYLE parameter. The STYLE parameter is only processed if VERSION is 1.1. This parameter is optional.
Since the defaults for VERSION and STYLE are 1.0 and rpc respectively, this means that by default Info*Engine SOAP services are rpc-encoded SOAP services. If you want Info*Engine SOAP to behave rpc-literal, specify rpc and 1.1 for STYLE and VERSION respectively. If you want Info*Engine SOAP to behave document-literal, specify document and 1.1 respectively.
EXAMPLE
The following Generate-WSDL example generates WSDL from Info*Engine tasks. The REPOSITORY parameter is generated based on the running virtual machine name (as described in the REPOSITORY parameter description). The WSDL methods are associated with the Java class named com.infoengine.soap. The request is routed through the SOAP service specified in SOAP_URI, and the generated WSDL is returned to the client as a BLOB.
<ie:webject name="Generate-WSDL" type="MGT">
<ie:param name="CLASS" data="com.infoengine.soap"/>
<ie:param name="SOAP_URI"
data="http://host/Windchill/servlet/RPC"/>
</ie:webject>